Você está na página 1de 3

O comandos DBCC basicamente se dividem em 4 categorias descritas a segu

1. Comandos de Manutenção

Fazem alguma manutenção preventiva ou corretiva no banco de dados. Alguns comandos desta
categoria:
DBCC DBREINDEX Reconstrói os índices de uma tabela.
Muito útil para manutenção de índices.

DBCC DBREPAIR Apaga um banco corrompido. Use DRP


DATABASE ao invés de DBCC
DBREPAIR.

DBCC INDEXDEFRAG Desfragmenta um ou mais índices de


uma tabela. Melhora a performance do
índice.

DBCC Diminui o tamanho de todos os arquivos


SHRINKDATABASE de dados ou Log de um banco de dados
até um certo tamanho.

DBCC SHRINKFILE Diminui o tamanho de um arquivo


específico de dados ou Log de um banco
de dados até um certo tamanho.

DBCC UPDATEUSAGE Corrige erros de tamanho de dados


retornados pela Stored Procedure
sp_spaceused.

2. Comandos Gerais

Possuem diversas funcionalidades, como alocação de tabela na memória, ajuda sobre outros
comandos DBCC e ‘pinagem’ de tabela. Comandos:
DBCC (FREE) Descarrega da memória uma DLL que
possui alguma Extend Stored Procedure
associada a ela.

DBCC HELP Retorna a sintaxe de algum outro


comando DBCC

DBCC PINTABLE ‘Pina’ a tabela , ou seja , faz o SQL Server


não liberar da memória algumas
informações de uma tabela. Se utilizado
com cuidado , há ganho de performance.

DBCC UNPINTABLE Faz o SQL Server liberar da memórias


algumas informações de uma tabela que
foi ‘pinada’ como comando DBCC
PINTABLE.

DBCC ROWLOCK Simplesmente incluída por


compatibilidade. A funcionalidade que este
comando proporcionava já é embutida
automaticamente no SQL Server 2000

DBCC TRACEON Habilita um flag de trace que é necessário


para outros comandos DBCC.

DBCC TRACEOFF Desabilita um flag de trace setado como


comando DBCC TRACEON

3. Comandos de Status
Fazem algumas verificações de algumas configurações do banco de dados. Comandos:
DBCC INPUTBUFFER Mostra o último comando enviado por
um processo ( usuário ) no SQL Server.
É parecido com o trace que o Profiler
mostra , porém limitado.

DBCC OUTPUTBUFFER Mostra o output atual que o banco


retornou para um processo ( usuário )
no SQL Server. O resultado retornado é
em hexadecimal...

DBCC OPENTRAN Mostra informações sobre a transação


mais velha ( mais tempo executando )
em um banco de dados.

DBCC PROCCACHE Mostra informações sobre o Procedure


Cache.

DBCC SHOWCONTIG Mostra várias informações sobre os


índices de uma tabela , inclusive o nível
de fragmentação do índice.

DBCC Mostra as informações sobre as


SHOW_STATISTICS estatísticas de uma tabela. Estatísticas
são muito importantes para a melhora
de performance.

DBCC SQLPERF Informações sobre tamanho do Log dos


bancos de dados.

DBCC TRACESTATUS Mostra a situação dos flags de trace


que foram setados com o DBCC
TRACEON. Estes traces controlam
configurações internas do SQL Server

DBCC USEROPTIONS Mostra várias informações referentes à


conexão do usuário.

4. Comandos de validação

Checagem da “saúde” de alguns objetos do banco de dados como tabelas, valores das colunas
IDENTITY e constraints. Comandos:
DBCC CHECKALLOC Verifica o espaço para as estruturas
de alocações internas do SQL Server.
Permite alguns reparos em caso de
erro.

DBCC CHECKCATALOG Somente checa a consistência de


algumas tabelas de sistema do SQL
Server ( que compõem o Database
Catalog ). Não faz reparos

DBCC Checa os relacionamentos de uma


CHECKCONSTRAINTS determinada constraint no banco de
dados. Não faz reparos.

DBCC CHECKDB Verifica erros de alocação e de


consistência em vários objetos do
banco de dados. Pode efetuar
reparos importantes em caso de
erro.

DBCC CHECKFILEGROUP Muito parecido com o DBCC


CHECKDB , porém só faz a
verificação no nível do filegroup de
um database. Não faz reparos

DBCC CHECKIDENT Chega e corrige , caso necessário ,


valores de colunas que possuem a
propriedade IDENTITY. Pode
inclusive resetar o valor inicial ( seed
) da coluna que possui a propriedade
IDENTITY.

DBCC CHECKTABLE Checa e corrige a integridade das


páginas de dados , índices , ntext ,
text e image para uma tabela ou
uma indexed view

DBCC NEWALLOC Idêntica à DBCC CHECKALLOC. Foi


mantida por compatibilidade.

Geralmente após a execução de qualquer comando DBCC , obtemos a seguinte mensagem:

DBCC execution completed. If DBCC printed error messages, contact your system administrator.

Isso é meio vago, mas tudo bem pois indica que o comando foi executado sem problemas. Alguns
comandos podem gerar um output interessante, como o DBCC USEROPTIONS. Podemos
armazenar este output em uma tabela e depois consultar o resultado do comando armazenado na
tabela. Por exemplo:

/* Criando a tabela que irá armazenar o output. As colunas desta tabela dependem do comando DBCC que for
utilizado. */

CREATE TABLE OUTPUT_DBCC


(
OPCAO VARCHAR(35) NOT NULL,
VALOR VARCHAR(35) NOT NULL
)

/* Inserindo os dados de DBCC USEROPTIONS na tabela , através da instrução EXEC */


INSERT INTO OUTPUT_DBCC(OPCAO,VALOR) EXEC('DBCC USEROPTIONS')

/* Verificando os dados */
SELECT OPCAO , VALOR FROM OUTPUT_DBCC

Todos os comandos das quatro categorias listados acima são amplamente documentados no
Books OnLine, inclusive com exemplos de uso e situações nas quais eles podem ajudar.

Além das quatro categorias de comandos DBCC descritas acima, ainda temos alguns comandos
não documentados pela Microsoft. Estes comandos DBCC não foram documentados por não
serem de uso geral e por precaução: algum usuário descuidado pode acabar enviando um
comando que pode causar um grande estrago no banco de dados.

Como não existe documentação oficial sobre estes comandos DBCC, quem quiser se aprofundar