Você está na página 1de 4

17:15

Dicas

No comments

O Shrink um recurso que nos permite reduzir o tamanho dos arquivos do banco de
dados. Esta operao pode ser feita em conjunto (banco de dados inteiro), ou em
um arquivo especfico (dados ou log).
O grande problema no uso desse recurso o mito criado sobre sua funcionalidade.
Como funciona o SHRINK no arquivo de dados
O shrink um recurso que podemos usar para mover as pginas do arquivo de
dados do SQL Server do final do arquivo para o comeo, podendo aps esse
processo, devolver o espao economizado para o sistema operacional fazer o que
quiser com ele, inclusive alocar para outro servio ou arquivo.
O comportamento natural do SQL Server em uma tabela HEAP alocar as pginas
aleatriamente no disco permitindo assim maior velocidade nas inseres dos
dados.
Isso siginifica que os dados de uma tabela HEAP ficam espalhados no disco, at
que um ndice Clusterizado seja criado.
Observe as figuras abaixo.
Os dados das tabelas distribuidos no disco antes do SHRINK

Os dados das tabelas distribuidos no disco aps o SHRINK

Search

Popular

Assunto

Publicaes

MAIS VISTOS
Entendo o Shrink no SQL
Server 2008
O Shrink um recurso que nos
permite reduzir o tamanho dos
arquivos do banco de dados. Esta
operao pode ser feita em conjunto (banco de
...
Verificar qual a porta que o SQLSERVER
esta utilizando
--Verificar qual a porta que o SQLSERVER esta
utilizando DECLARE @TcpPort VARCHAR(5)
,@RegKey VARCHAR(100) IF
@@SERVICEN...
ENTENDENDO OS
DEADLOCKS
Os DeadLocks ocorrem quando
existe um ciclo de dependncia
entre duas ou mais transaes
pelo mesmo recurso. Uma transao (T1) pode
adquir...
Requisitos de hardware e
software para a instalao do
SQL Server 2008 R2
Requisitos de hardware e
software para a instalao do
SQL Server 2008 R2 As sees a seguir listam
os requisitos mnimos de hardware e ...

Tecnologia do Blogger.
O espao em branco no arquivo pode ser eliminado e devolvido ao sistema
operacional.
Suponhamos que arquivo tem 100MB de tamanho e que aps o SHRINK reduziu
para 10MB, os 90MB em branco foram deveolvidos.

QUEM SOU EU

A princpio, o arquivo ficou mais organizado, mas se ela tivesse um ndice


NON-CLUSTERED, a referncia s pginas estaria equivocada e o ndice seria

Falta de espao na Tempdb


Como identificar as conexes que mais
ocupam espao no Tempdb Muitos me
perguntam como identifica o processo que esta
consumindo mais esp...

inutilizado para as queries imediatamente.


Mesmo para uma tabela com ndice CLUSTERED teramos problemas, pois um
ndice no atualizado aps um Shrink automaticamente, sendo assim, sempre que
movemos pginas pelo shrink, estamos fragmentando nossos ndices.

RONALDO GARCIA
DE BRITO

Veja um exemplo:
Considere duas tabelas com ndices CLUSTERED:

VIS UA LIZA R M EU
PE RFIL COMP LE TO

SEGUIDORES
Por ter ndice CLUSTERED, as tabelas tem as pginas prximas umas das outras.
Google Friend Connect

Membros (8)

J um membro? Fazer login

Imagine um DROP na tabela representada pela cor AZUL. A estrutura do arquivo


ficaria assim:

Aps fazer um SHRINK, o SQL Server move as pginas usadas do final para o
comeo, sendo assim:

+ DA SEMANA
Entendo o Shrink no SQL
Server 2008
O Shrink um recurso que
nos permite reduzir o
tamanho dos arquivos do
banco de dados. Esta
operao pode ser feita em
conjunto (banco de ...

O que houve aqui, foi uma mudana em massa dos dados para o comeo do
arquivo. Como o ndice no atualizado aps um SHRINK, suas referncias esto
totalmente invlidadas. Isso chamado de FRAGMENTAO.

Instalando o SQLSERVER 2008


em cluster
Instalao do SQL Server
Cluster Passo 1: Para que
possamos instalar o cluster do
SQL Server 2008, precisamos que todos os
pr-re...
Consideraes sobre
Performance no SQL Server
2008 R2
Todas as opes relacionadas
abaixo podem ser ajustadas
atravs das propriedades da instncia ou
atravs do comando sp_configure. O comp...
Alinhamento dos discos Melhores prticas para o SQL
Server 2008
Alinhamento dos discos
Melhores prticas para o SQL
Server 2008 Esse um assunto que a grande
maioria dos administradores de banco e d...
Verificando consumo de CPU por banco de
dados
Ol pessoal, o script abaixo capaz de verificar
o consumo de CPU por database. Ele poder se
muito til na administrao de ambiente. ...

Verificar qual a porta que


o SQLSERVER esta
utilizando
--Verificar qual a porta que
o SQLSERVER esta
utilizando DECLARE
@TcpPort VARCHAR(5)
,@RegKey
VARCHAR(100) IF
@@SERVICEN...

Se ainda assim voc pretende usar o SHRINK, vai a uma dica valiosa: Reconstrua
os seus ndices imediatamente aps.
OBS: No confunda fragmentao de arquivo do Windows com a fragmentao das
Pginas de dados dos arquivos do SQL Server. Discutiremos isso em outra
oportunidade.
Como funciona o SHRINK no arquivo de log de transaes
Se no arquivo de dados o Shrink pode causar uma baguna muito grande nos seus
ndices, no arquivo de log super tranquilo.
S para lembrar, um arquivo de log registra as transaes de forma sequencial
identificando-as atravs de LSNs (Log Sequence Number).

ENTENDENDO OS
DEADLOCKS
Os DeadLocks ocorrem
quando existe um ciclo de
dependncia entre duas ou
mais transaes pelo
mesmo recurso. Uma
transao (T1) pode
adquir...
Uso de memria por
Banco da Instncia
-Uso de memria por
Banco da Instncia
DECLARE @total_buffer
INT; SELECT @total_buffer
= cntr_value FROM
sys.dm_os_performance_..
.

Por no trabalhar com pginas de dados, a reduo do arquivo no altera em nada


o funcionamento do SQL Server, voc perde nada e ganha espao no arquivo de
log.
Aqui cabe uma explicao: O DBA que usa o artificio de rodar um SHRINK para
reduzir o tamanho do seu arquivo de log, provavelmente est sendo descuidado em
alguma etapa de suas tarefas de rotina. Vamos s possibilidades:
1) Se o arquivo de log cresce muito durante o dia e voc precisa de rodar o Shrink a
noite para reduzir o tamanho dele porque o backup do log no feito
frequentemente. O backup log LIMPA o log evitando assim que ele tenha que usar o
Autogrowth para esticar o tamanho dele. Se voc faz backup do log de hora e hora,
por exemplo, pouco provvel que precise de usar o Autogrowth. Lembre-se que
backup FULL no limpa o log.
2) Se cresce tanto assim o arquivo de log e voc no faz backup, mude o Recovery
Model do seu banco para SIMPLE. Assim, o SQL Server vai truncar o log a cada
checkpoint evitando acmulo de transaes registradas. muito comum ver nas
empresas banco de dados com 5 GB de dados e um log de 70 GB.
Fazendo o SHRINK

Falta de espao na
Tempdb
Como identificar as
conexes que mais
ocupam espao no Tempdb
Muitos me perguntam
como identifica o processo
que esta consumindo mais
esp...

O Shrink pode ser feito no banco de dados inteiro ou em um arquivo especfico. Isso
vai depender da sua necessidade. De qualquer forma, isso pode ser feito via
Management Studio e com comando DBCC.
Shrink no Banco de Dados (DBCC SHRINKDATABASE)
O Shrink no banco de dados feito atravs do comando DBCC
SHRINKDATABASE..
SHRINKDATABASE
O DBCC SHRINKDATABASE recebe como parmetro o nome do banco e o espao
que deseja ter livre nos arquivos aps a execuo.
Veja alguns exemplos de uso:
DBCC SHRINKDATABASE (NomeBanco, 10)
- Reduz o tamanho dos arquivos do banco de dados deixando 10% de espeo
livre neles.
DBCC SHRINKDATABASE(NomeBanco, NOTRUNCATE)
- A opo NOTRUNCATE na realidade s move as pginas de dados do final do
arquivo para o comeo e no devolve o espao liberado para o sistema operacional.
A impresso que d que nada foi feito com os arquivos de dados. S aplicavel
arquivo de dados.
DBCC SHRINKDATABASE(NomeBanco, TRUNCATEONLY)
Libera todo espao disponvel no final do arquivo, mas no movimenta as pginas
de dados. O arquivo de dados s reduzido at o ltimo extent alocado. S
aplicavel arquivo de dados.
Se desejar, pode fazer pelo Management Studio clicando com boto direito no
banco Tasks Shrink Database e escolha a porcentagem.

Shrink nos Arquivos individualmente (DBCC SHRINKFILE)


O shrink em um arquivo individual feito atravs do comando DBCC SHRINKFILE.
Exemplo:
Use Database1
go
DBCC SHRINKFILE (DataFile1, 7)
- Reduz o tamanho do arquivo DataFile1 para 7 MB. Lembrando que se esse
arquivo for de LOG, o tamanho desejado pode no ser respeitado, pois a estrutura
de um arquivo de log no permite que seja reduzido valores menores do que o
tamanho do Virtual Log.
Se usar o Management Studio, clique com boto direito no banco Tasks
Shrink File

Arquitetura de memria do
SQLSERVER
O SQL Server adquire e libera
memria dinamicamente
conforme necessrio.
Normalmente, um administrador no precisa
especificar a quantidad...

LTIMAS NOTCIAS
Apple Google Microsoft
Apple comea a vender novos iPads em duas
Globo.com
O CEO da Apple Tim Cook apresenta o novo
iPad Air 2 durante evento na sede da empresa
em Cupertino, na Califrnia. Modelo tem leitor
de impresses digitais Touch ID, 6,1mm de
espessura e processador A8X de 64-bit (Foto:
Marcio Jose Sanchez/AP).
Artigos Relacionados
Apple CarPlay vs Google Android Auto:
Tudocelular.com
O Apple CarPlay e o Google Android Auto so
dois novos sistemas que ambas empresas
produziram para que os seus smartphones e
outros dispositivos mveis pudessem ser
utilizados dentro do carro sem atrapalhar o
motorista enquanto dirige.
Apple requisita mais peas da Samsung, para
Tudocelular.com
Atualmente a Samsung j fornece diversos
componentes para a Apple, parte dos aparelhos
da Ma, so na verdade, da companhia
sul-coreana. Mas claro que isso no importa
muito, para a maioria das pessoas, o que
realmente importa o logo ...
Apple Store no dar descontos durante a Black
Tudocelular.com
Ao menos no Brasil, a Apple Store Online (e
fsica) no participar diretamente da Black
Friday, como aconteceu nos anos anteriores.
Desde 2009 a empresa participa do evento aqui
no pas e foi uma das primeiras a implementar o
modelo de vendas na ...
realizado por

Release unused space Libera todo espao disponvel no final do arquivo, mas
no movimenta as pginas de dados.
Reorganize pages before releasing unused space Movimenta as pginas para
o comeo do arquivo antes de liberar o espao.
Empty file by migrating the data to other files in the same filegroup Caso
tenha definido vrios arquivos de dados para o seu banco e tem a necessidade de
eliminar um ou mais arquivos alocados, pode usar essa opo. Ela faz com que as
pginas de dados do arquivo em questo sejam migradas para outras pginas dos
outros arquivos do mesmo filegroup. Aps feito isso, voc poder apagar o arquivo.
Dicas e Observaes
1) Use a procedure sp_spaceused para saber o espao em disco ainda no
alocado, para ter uma base de reduo do arquivo.

2) Tambm pode ser usado o clculo a seguir:


SELECT name ,size/128.0 CAST(FILEPROPERTY(name, 'SpaceUsed') AS
int)/128.0 AS AvailableSpaceInMB FROM sys.database_files

3) O banco de dados no pode se tornar menor que o tamanho original da criao


do banco de dados ou do tamanho explicitamente definido por meio de um ALTER
DATABASE ou DBCCSHRINKFILE.
4) Usurios podem continuar trabalhando com o banco de dados durante o
SHRINK, o banco no precisa estar em SINGLE USER MODE.
5) O SHRINK no roda se algum backup estiver em andamento no banco de dados.
6) Os erros 5202 para SHRINKDATABASE e 5203 para SHRINKFILE podem
ocorrer caso nvel de isolamento do banco esteja como SNAPSHOT. Nesse caso,
os erros so disparados a cada cinco minutos, na primeira hora, e, depois, a cada
hora.
7) Voc pode reduzir o tamanho padro de um arquivo vazio usando DBCC
SHRINKFILE target_size. Por exemplo, se voc cria um arquivo com 5 MB e depois
o reduz para 3 MB enquanto o arquivo ainda est vazio, o tamanho do arquivo
padro definido como 3 MB. Isso s se aplica a arquivos vazios que nunca
contiveram dados.

Postagem mais recente

0 comentrios:
Postar um comentrio

Comentar como:

Publicar

Incio

Postagem mais antiga

Links para esta postagem


Criar um link

15625
Copyright 2011 DBA Ronaldo Garcia | Powered by Blogger
Design by Free WP Themes | Bloggerized by Lasantha - Premium Blogger Themes | Construction Project Management

Você também pode gostar