Comandos DBCC

Olá,

O SQL Server possui uma série de comandos chamados DBCC (Database Console Commands). Mais informações aqui (http://technet.microsoft.com/pt-br/library/ms188796.aspx)

Estes comandos são divididos em quatro categorias:

  • Manutenção (Maintenance)
  • Diversos (Miscellaneous)
  • Informação (Informational)
  • Validação (Validation)

Existem 30 comandos documentados. (Vide link da documentação oficial acima). Porém, existem muitos outros comandos DBCC não-documentados. (e obviamente não suportados).

Para poder visualizar todos os comandos DBCC é preciso habilitar um trace flag. Até o SQL Server 2005 você poderia utilizar o trace flag 2520 mas depois desta edição passou a valer o trace flag 2588, conforme explicado pelo Paul Randal (autor da alteração) neste post (https://www.sqlskills.com/blogs/paul/dbcc-writepage/).

Há um dos comandos DBCC que lista todos os outros: DBCC HELP. Nele você pode informar o nome do comando DBCC que você deseja visualizar, onde será informado os parâmetros utilizados pelo comando, ou informar o parâmetro ‘?’, para listar todos os comandos.

Para visualizar todos os comandos DBCC, execute o script abaixo:

DBCC TRACEON(2588)

GO

DBCC HELP(‘?’)

GO

 

O DBCC TRACEON é utilizado para habilitar o trace flag 2588 somente para a sessão atual que está executando estes comandos. Uma vez que você visualizar todos os comandos DBCC, escolha um deles, e execute o DBCC HELP para visualizar os parâmetros de execução daquele comando, conforme exemplo abaixo. Eu escolhi o comando CHECKDB:

 

DBCC HELP(‘CHECKDB’)

GO

 

O resultado foi o seguinte:

 

dbcc CHECKDB

(

    { ‘database_name’ | database_id | 0 }

    [ , NOINDEX

    | { REPAIR_ALLOW_DATA_LOSS

    | REPAIR_FAST

    | REPAIR_REBUILD

    } ]

)

    [ WITH

        {

            [ ALL_ERRORMSGS ]

            [ , [ NO_INFOMSGS ] ]

            [ , [ TABLOCK ] ]

            [ , [ ESTIMATEONLY ] ]

            [ , [ PHYSICAL_ONLY ] ]

            [ , [ DATA_PURITY ] ]

            [ , [ EXTENDED_LOGICAL_CHECKS  ] ]

        }

    ]

 

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

Você vai perceber que para comandos não documentados a saída do DBCC HELP é ligeiramente diferente:

 

dbcc buffer ( {‘dbname’ | dbid} [, {‘objname’ | objid} [, number [, printopt={0|1|2} ][, dirty | io | kept | rlock | ioerr | hashed ]]])

 

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

ATENÇÃO: Como é de conhecimento de muitos, o SQL Server possui diversos comandos não-documentados, e como tal, não são suportados pelo suporte Microsoft. Portanto, tenha muito cuidado e atenção ao executar um destes comandos e evite “testar” estes comandos em ambiente de produção. Outro ponto importante é que já que não são suportados, seu funcionamento e existência podem ser alterados a cada versão do SQL Server.

 

Eu realizei alguns testes em quatro versões diferentes do SQL Server. SQL Server 2008 (10.0.4000), SQL Server 2008 R2 (10.50.2789), SQL Server 2012 (11.0.3000) e SQL Server 2014 (CTP2) (12.0.1524).

 

Não há diferenças entre as versões 2008 e 2008 R2. Os seguintes comandos existiam nestas versões e foram removidos para as próximas:

 

DBCC ACTIVECURSORS

DBCC DBRECOVER

DBCC ICECAPQUERY

DBCC LATCH

DBCC METADATA

DBCC MOVEPAGE

DBCC PRTIPAGE

DBCC SHOWDBAFFINITY

DBCC SHOWTABLEAFFINITY

No SQL Server 2012 surgiram 3 novos comandos:

 

DBCC CRASHDB

DBCC CSINDEX

DBCC READBYTES

E ainda no SQL Server 2014 surgiu mais um comando:

 

DBCC FLUSHQUERYSTORE

 

Todos os comandos removidos ou incluídos são não-documentados.

 

Apesar de existirem muito mais comandos não-documentados do que documentados, muitos comandos são frequentemente utilizados e “documentados” pela comunidade técnica, como por exemplo, DBCC PAGE, DBCC IND, DBCC EXTENTINFO, entre outros.

Referências: https://www.sqlskills.com/blogs/paul/category/dbcc/ http://technet.microsoft.com/pt-br/library/ms188796.aspx

Bons estudos!!! Erickson Ricci

5 Respostas para “Comandos DBCC

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s