DBCC CHECKDB (Transact-SQL)DBCC CHECKDB (Transact-SQL)

APLICA-SE A: simSQL Server simBanco de Dados SQL do Azure nãoAzure Synapse Analytics (SQL DW) nãoParallel Data Warehouse APPLIES TO: yesSQL Server yesAzure SQL Database noAzure Synapse Analytics (SQL DW) noParallel Data Warehouse

Verifica a integridade lógica e física de todos os objetos do banco de dados especificado com a execução das seguintes operações:Checks the logical and physical integrity of all the objects in the specified database by performing the following operations:

  • Executa DBCC CHECKALLOC no banco de dados.Runs DBCC CHECKALLOC on the database.
  • Executa DBCC CHECKTABLE em cada tabela e exibição no banco de dados.Runs DBCC CHECKTABLE on every table and view in the database.
  • Executa DBCC CHECKCATALOG no banco de dados.Runs DBCC CHECKCATALOG on the database.
  • Valida o conteúdo de toda exibição indexada do banco de dados.Validates the contents of every indexed view in the database.
  • Valida a consistência no nível do link entre arquivos e diretórios do sistema de arquivos e dos metadados de tabela ao armazenar dados varbinary(max) no sistema de arquivos usando FILESTREAM.Validates link-level consistency between table metadata and file system directories and files when storing varbinary(max) data in the file system using FILESTREAM.
  • Valida os dados Service BrokerService Broker no banco de dados.Validates the Service BrokerService Broker data in the database.

Isso significa que os comandos DBCC CHECKALLOC, DBCC CHECKTABLE ou DBCC CHECKCATALOG não precisam ser executados separadamente do DBCC CHECKDB.This means that the DBCC CHECKALLOC, DBCC CHECKTABLE, or DBCC CHECKCATALOG commands do not have to be run separately from DBCC CHECKDB. Para obter informações mais detalhadas sobre as verificações executadas, consulte as descrições desses comandos.For more detailed information about the checks that these commands perform, see the descriptions of these commands.

Observação

DBCC CHECKDB tem suporte em bancos de dados que contêm tabelas com otimização de memória, mas a validação ocorre apenas em tabelas baseadas em disco.DBCC CHECKDB is supported on databases that contain memory-optimized tables but validation only occurs on disk-based tables. No entanto, como parte do backup e recuperação de banco de dados, uma validação de CHECKSUM é feita para arquivos em grupos de arquivos com otimização de memória.However, as part of database backup and recovery, a CHECKSUM validation is done for files in memory-optimized filegroups.

Como as opções de reparo de DBCC não estão disponíveis para tabelas com otimização de memória, você deverá fazer o backup de seus bancos de dados regularmente e testar os backups.Since DBCC repair options are not available for memory-optimized tables, you must back up your databases regularly and test the backups. Se ocorrerem problemas de integridade de dados em uma tabela com otimização de memória, você deverá restaurar o último backup válido.If data integrity issues occur in a memory-optimized table, you must restore from the last known good backup.

Ícone de link do tópico Convenções de sintaxe Transact-SQLTopic link icon Transact-SQL Syntax Conventions

SintaxeSyntax

DBCC CHECKDB     
    [ ( database_name | database_id | 0    
        [ , NOINDEX     
        | , { REPAIR_ALLOW_DATA_LOSS | REPAIR_FAST | REPAIR_REBUILD } ]    
    ) ]    
    [ WITH     
        {    
            [ ALL_ERRORMSGS ]    
            [ , EXTENDED_LOGICAL_CHECKS ]     
            [ , NO_INFOMSGS ]    
            [ , TABLOCK ]    
            [ , ESTIMATEONLY ]    
            [ , { PHYSICAL_ONLY | DATA_PURITY } ]    
            [ , MAXDOP  = number_of_processors ]    
        }    
    ]    
]    

ArgumentosArguments

database_name | database_id | 0database_name | database_id | 0
É o nome ou a ID do banco de dados para o qual executar verificações de integridade.Is the name or ID of the database for which to run integrity checks. Se não for especificado ou se 0 for especificado, o banco de dados atual será usado.If not specified, or if 0 is specified, the current database is used. Os nomes de banco de dados precisam estar em conformidade com as regras de identificadores.Database names must comply with the rules for identifiers.

NOINDEXNOINDEX
Especifica que não devem ser executadas verificações intensivas de índices não clusterizados de tabelas de usuário.Specifies that intensive checks of nonclustered indexes for user tables should not be performed. Isto reduz o tempo de execução geral.This decreases the overall execution time. NOINDEX não afeta tabelas do sistema porque as verificações de integridade sempre são executadas em todos os índices de tabela do sistema.NOINDEX does not affect system tables because integrity checks are always performed on system table indexes.

REPAIR_ALLOW_DATA_LOSS | REPAIR_FAST | REPAIR_REBUILDREPAIR_ALLOW_DATA_LOSS | REPAIR_FAST | REPAIR_REBUILD
Especifica que DBCC CHECKDB repara os erros encontrados.Specifies that DBCC CHECKDB repair the found errors. Use as opções REPAIR apenas como um último recurso.Use the REPAIR options only as a last resort. O banco de dados especificado deve estar em modo de usuário único para usar uma das opções de reparo a seguir.The specified database must be in single-user mode to use one of the following repair options.

REPAIR_ALLOW_DATA_LOSSREPAIR_ALLOW_DATA_LOSS
Tenta reparar todos os erros relatados.Tries to repair all reported errors. Esses reparos podem provocar alguma perda de dados.These repairs can cause some data loss.

Aviso

A opção REPAIR_ALLOW_DATA_LOSS é um recurso compatível, mas nem sempre é a melhor opção para colocar um banco de dados em um estado fisicamente consistente.The REPAIR_ALLOW_DATA_LOSS option is a supported feature but it may not always be the best option for bringing a database to a physically consistent state. Se for bem-sucedida, a opção REPAIR_ALLOW_DATA_LOSS poderá resultar em alguma perda de dados.If successful, the REPAIR_ALLOW_DATA_LOSS option may result in some data loss. Na verdade, ela pode resultar em mais dados perdidos do que se um usuário restaurar o banco de dados por meio do último backup válido.In fact, it may result in more data lost than if a user were to restore the database from the last known good backup.

MicrosoftMicrosoft sempre recomenda uma restauração de usuário do último backup válido como o principal método de recuperação de erros relatados pelo DBCC CHECKDB.always recommends a user restore from the last known good backup as the primary method to recover from errors reported by DBCC CHECKDB. A opção REPAIR_ALLOW_DATA_LOSS não é uma alternativa para restaurar por meio de um backup válido.The REPAIR_ALLOW_DATA_LOSS option is not an alternative for restoring from a known good backup. É uma opção emergencial de "último recurso" recomendada para uso somente se não for possível restaurar de um backup.It is an emergency "last resort" option recommended for use only if restoring from a backup is not possible.

Determinados erros, que só podem ser reparados usando a opção REPAIR_ALLOW_DATA_LOSS, podem envolver o deslocamento de uma linha, página ou série de páginas para limpar os erros.Certain errors, that can only be repaired using the REPAIR_ALLOW_DATA_LOSS option, may involve deallocating a row, page, or series of pages to clear the errors. Qualquer dado desalocado não é mais acessível nem recuperável pelo usuário e o conteúdo exato dos dados desalocados não pode ser determinado.Any deallocated data is no longer accessible or recoverable for the user, and the exact contents of the deallocated data cannot be determined. Portanto, a integridade referencial pode não ser precisa após a desalocação de linhas ou páginas porque as restrições de chave estrangeira não estão marcadas nem mantidas como parte da operação de reparo.Therefore, referential integrity may not be accurate after any rows or pages are deallocated because foreign key constraints are not checked or maintained as part of this repair operation. O usuário deve verificar a integridade referencial do banco de dados (usando DBCC CHECKCONSTRAINTS) depois de usar a opção REPAIR_ALLOW_DATA_LOSS.The user must inspect the referential integrity of their database (using DBCC CHECKCONSTRAINTS) after using the REPAIR_ALLOW_DATA_LOSS option.

Antes de executar o reparo, crie cópias físicas dos arquivos que pertencem a esse banco de dados.Before performing the repair, create physical copies of the files that belong to this database. Isso inclui o arquivo de dados primário (.mdf), quaisquer arquivos de dados secundários (.ndf), todos os arquivos de log de transação (.ldf) e outros contêineres que formam o banco de dados incluindo catálogos de texto completo, pastas de fluxo de arquivos, dados de otimização de memória, etc.This includes the primary data file (.mdf), any secondary data files (.ndf), all transaction log files (.ldf), and other containers that form the database including full text catalogs, file stream folders, memory optimized data, etc.

Antes de executar o reparo, considere alterar o estado do banco de dados para o modo de EMERGÊNCIA e tentar extrair o máximo possível de informações das tabelas críticas e salvar esses dados.Before performing the repair, consider changing the state of the database to EMERGENCY mode and trying to extract as much information possible from the critical tables and save that data.

REPAIR_FASTREPAIR_FAST
Mantém a sintaxe apenas para compatibilidade com versões anteriores.Maintains syntax for backward compatibility only. Nenhuma ação de reparo é executada.No repair actions are performed.

REPAIR_REBUILDREPAIR_REBUILD
Executa reparos que não têm nenhuma possibilidade de perda de dados.Performs repairs that have no possibility of data loss. Isso pode incluir reparos rápidos, como reparo de linhas perdidas em índices não clusterizados e reparos mais demorados, como a recriação de um índice.This can include quick repairs, such as repairing missing rows in nonclustered indexes, and more time-consuming repairs, such as rebuilding an index.
Esse argumento não repara erros que envolvem dados de FILESTREAM.This argument does not repair errors involving FILESTREAM data.

Importante

Como DBCC CHECKDB com qualquer uma das opções REPAIR são completamente registrados e recuperáveis, MicrosoftMicrosoft recomenda sempre que um usuário use CHECKDB com quaisquer opções REPAIR em uma transação (execute BEGIN TRANSACTION antes de executar o comando) para que o usuário possa decidir se quer aceitar os resultados da operação.Since DBCC CHECKDB with any of the REPAIR options are completely logged and recoverable, MicrosoftMicrosoft always recommends a user use CHECKDB with any REPAIR options within a transaction (execute BEGIN TRANSACTION before running the command) so that the user can confirm he/she wants to accept the results of the operation. Em seguida, o usuário pode executar COMMIT TRANSACTION para confirmar todo o trabalho feito pela operação de reparo.Then the user can execute COMMIT TRANSACTION to commit all work done by the repair operation. Se o usuário não quiser aceitar os resultados da operação, ele poderá executar uma ROLLBACK TRANSACTION para desfazer os efeitos das operações de reparo.If the user does not want to accept the results of the operation, he/she can execute a ROLLBACK TRANSACTION to undo the effects of the repair operations.    

Para reparar erros, recomendamos restaurar de um backup.To repair errors, we recommend restoring from a backup. Operações de reparo não consideram nenhuma das restrições que podem existir em tabelas ou entre tabelas.Repair operations do not consider any of the constraints that may exist on or between tables. Se a tabela especificada estiver envolvida em uma ou mais restrições, recomendamos executar DBCC CHECKCONSTRAINTS após uma operação de reparo.If the specified table is involved in one or more constraints, we recommend running DBCC CHECKCONSTRAINTS after a repair operation. Se for necessário usar REPAIR, execute DBCC CHECKDB sem uma opção de reparo para localizar o nível de reparo a ser usado.If you must use REPAIR, run DBCC CHECKDB without a repair option to find the repair level to use. Se você usar o nível de REPAIR_ALLOW_DATA_LOSS, recomendamos fazer backup do banco de dados antes de executar DBCC CHECKDB com essa opção.If you use the REPAIR_ALLOW_DATA_LOSS level, we recommend that you back up the database before you run DBCC CHECKDB with this option.

ALL_ERRORMSGSALL_ERRORMSGS
Exibe todos os erros relatados por objeto.Displays all reported errors per object. Todas as mensagens de erro são exibidas por padrão.All error messages are displayed by default. Especificar ou omitir esta opção não têm nenhum efeito.Specifying or omitting this option has no effect. As mensagens de erro são classificadas pela ID de objeto, exceto as mensagens geradas pelo banco de dados tempdb.Error messages are sorted by object ID, except for those messages generated from tempdb database.    

EXTENDED_LOGICAL_CHECKSEXTENDED_LOGICAL_CHECKS
Se o nível de compatibilidade for 100 (SQL Server 2008SQL Server 2008) ou superior, executará verificações de consistência lógica em uma exibição indexada, em índices XML e em índices espaciais, quando presentes.If the compatibility level is 100 ( SQL Server 2008SQL Server 2008) or higher, performs logical consistency checks on an indexed view, XML indexes, and spatial indexes, where present.
Para obter mais informações, confira Executando verificações de consistência lógica em índices, na seção Comentários mais adiante neste tópico.For more information, see Performing Logical Consistency Checks on Indexes, in the Remarks section later in this topic.

NO_INFOMSGSNO_INFOMSGS
Suprime todas as mensagens informativas.Suppresses all informational messages.

TABLOCKTABLOCK
Faz com que DBCC CHECKDB obtenha bloqueios em vez de usar um instantâneo do banco de dados interno.Causes DBCC CHECKDB to obtain locks instead of using an internal database snapshot. Isso inclui um bloqueio exclusivo (X) de curto prazo no banco de dados.This includes a short-term exclusive (X) lock on the database. TABLOCK faz com que DBCC CHECKDB seja executado com mais rapidez em um banco de dados sob carga pesada, mas reduz a simultaneidade disponível no banco de dados durante sua execução.TABLOCK will cause DBCC CHECKDB to run faster on a database under heavy load, but decreases the concurrency available on the database while DBCC CHECKDB is running.

Importante

TABLOCK limita as verificações executadas, DBCC CHECKCATALOG não é executado no banco de dados e os dados do Service BrokerService Broker não são validados.TABLOCK limits the checks that are performed; DBCC CHECKCATALOG is not run on the database, and Service BrokerService Broker data is not validated.

ESTIMATEONLYESTIMATEONLY
Exibe a quantidade estimada de espaço no tempdb necessária para executar DBCC CHECKDB com todas as outras opções especificadas.Displays the estimated amount of tempdb space that is required to run DBCC CHECKDB with all the other specified options. A verificação real do banco de dados não é executada.The actual database check is not performed.

PHYSICAL_ONLYPHYSICAL_ONLY
Limita a verificação à integridade da estrutura física da página e dos cabeçalhos de registros e a consistência da alocação do banco de dados.Limits the checking to the integrity of the physical structure of the page and record headers and the allocation consistency of the database. Essa verificação foi desenvolvida para fornecer uma pequena verificação de sobrecarga da consistência física do banco de dados, mas ela também pode detectar páginas interrompidas, falhas de soma de verificação e falhas comuns de hardware que podem comprometer os dados de um usuário.This check is designed to provide a small overhead check of the physical consistency of the database, but it can also detect torn pages, checksum failures, and common hardware failures that can compromise a user's data.
A conclusão de uma execução completa de DBCC CHECKDB pode levar consideravelmente mais tempo do que em versões anteriores.A full run of DBCC CHECKDB may take considerably longer to complete than earlier versions. Esse comportamento ocorre porque:This behavior occurs because:

  • As verificações lógicas são mais abrangentes.The logical checks are more comprehensive.
  • Algumas das estruturas subjacentes a serem verificadas são mais complexas.Some of the underlying structures to be checked are more complex.
  • Foram introduzidas muitas verificações novas para incluir os novos recursos.Many new checks have been introduced to include the new features.
    Portanto, o uso da opção PHYSICAL_ONLY pode resultar em um tempo de execução muito mais curto de DBCC CHECKDB em grandes bancos de dados, e é recomendada para uso frequente em sistemas de produção.Therefore, using the PHYSICAL_ONLY option may cause a much shorter run-time for DBCC CHECKDB on large databases and is recommended for frequent use on production systems. Ainda é recomendável executar um DBCC CHECKDB completo periodicamente.We still recommend that a full run of DBCC CHECKDB be performed periodically. A frequência dessas execuções depende de fatores específicos aos negócios e ambientes de produção individuais.The frequency of these runs depends on factors specific to individual businesses and production environments.
    Este argumento sempre implica em NO_INFOMSGS e não é permitido com nenhuma das opções de reparo.This argment always implies NO_INFOMSGS and is not allowed with any one of the repair options.

Aviso

A especificação de PHYSICAL_ONLY faz com que DBCC CHECKDB ignore todas as verificações de dados FILESTREAM.Specifying PHYSICAL_ONLY causes DBCC CHECKDB to skip all checks of FILESTREAM data.

DATA_PURITYDATA_PURITY
Faz com que o DBCC CHECKDB verifique valores de colunas no banco de dados que não são válidos ou estão fora do intervalo.Causes DBCC CHECKDB to check the database for column values that are not valid or out-of-range. Por exemplo, o DBCC CHECKDB detecta colunas com valores de data e hora que são maiores ou menores do que o intervalo aceitável para o tipo de dados datetime ou decimal ou colunas de tipo de dados numérico aproximado com valores de escala ou de precisão que são inválidos.For example, DBCC CHECKDB detects columns with date and time values that are larger than or less than the acceptable range for the datetime data type; or decimal or approximate-numeric data type columns with scale or precision values that are not valid.
Verificações de integridade de valor de coluna são habilitadas por padrão e não exigem a opção DATA_PURITY.Column-value integrity checks are enabled by default and do not require the DATA_PURITY option. Para bancos de dados atualizados de versões anteriores do SQL ServerSQL Server, verificações de valores de colunas não são habilitadas por padrão até que o DBCC CHECKDB WITH DATA_PURITY tenha sido executado sem erros no banco de dados.For databases upgraded from earlier versions of SQL ServerSQL Server, column-value checks are not enabled by default until DBCC CHECKDB WITH DATA_PURITY has been run error free on the database. Depois disso, DBCC CHECKDB verifica a integridade de valores de coluna por padrão.After this, DBCC CHECKDB checks column-value integrity by default. Para obter mais informações sobre como o CHECKDB pode ser afetado com a atualização de banco de dados de versões anteriores do SQL ServerSQL Server, consulte a seção Comentários, posteriormente neste tópico.For more information about how CHECKDB might be affected by upgrading database from earlier versions of SQL ServerSQL Server, see the Remarks section later in this topic.

Aviso

Se PHYSICAL_ONLY estiver especificado, não serão executadas verificações de integridade de colunas.If PHYSICAL_ONLY is specified, column-integrity checks are not performed.

Erros de validação relatados por essa opção não podem ser corrigidos usando opções de reparo de DBCC.Validation errors reported by this option cannot be fixed by using DBCC repair options. Para obter informações sobre como corrigir esses erros manualmente, confira o artigo 923247 da Base de Dados de Conhecimento: Solução de problemas do erro 2570 do DBCC no SQL Server 2005 e em versões posteriores.For information about manually correcting these errors, see Knowledge Base article 923247: Troubleshooting DBCC error 2570 in SQL Server 2005 and later versions.

MAXDOPMAXDOP
Aplica-se ao: SQL ServerSQL Server (SQL Server 2014 (12.x)SQL Server 2014 (12.x) SP2 e posterior).Applies to: SQL ServerSQL Server ( SQL Server 2014 (12.x)SQL Server 2014 (12.x) SP2 and later).

Substitui a opção de configuração max degree of parallelism de sp_configure da instrução.Overrides the max degree of parallelism configuration option of sp_configure for the statement. O MAXDOP pode exceder o valor configurado com sp_configure.The MAXDOP can exceed the value configured with sp_configure. Se MAXDOP exceder o valor configurado com o Resource Governor, o Mecanismo de Banco de Dados do SQL ServerSQL Server Database Engine usará o valor de MAXDOP do Resource Governor, descrito em ALTER WORKLOAD GROUP.If MAXDOP exceeds the value configured with Resource Governor, the Mecanismo de Banco de Dados do SQL ServerSQL Server Database Engine uses the Resource Governor MAXDOP value, described in ALTER WORKLOAD GROUP. Todas as regras semânticas usadas com a opção de configuração grau máximo de paralelismo são aplicáveis ao usar a dica de consulta MAXDOP.All semantic rules used with the max degree of parallelism configuration option are applicable when you use the MAXDOP query hint. Para obter mais informações, veja Configurar a opção max degree of parallelism de configuração de servidor.For more information, see Configure the max degree of parallelism Server Configuration Option.

Aviso

Se MAXDOP estiver definido como zero, o SQL Server escolherá o grau máximo de paralelismo a ser usado.If MAXDOP is set to zero then SQL Server chooses the max degree of parallelism to use.    

RemarksRemarks

O DBCC CHECKDB não examina índices desabilitados.DBCC CHECKDB does not examine disabled indexes. Para obter mais informações sobre índices desabilitados, confira Desabilitar índices e restrições.For more information about disabled indexes, see Disable Indexes and Constraints.

Se um tipo definido pelo usuário estiver marcado como sendo ordenado por byte, deverá existir apenas uma serialização do tipo definido pelo usuário.If a user-defined type is marked as being byte ordered, there must only be one serialization of the user-defined type. Se não houver uma serialização consistente de tipos definidos pelo usuário ordenados por byte, o erro 2537 ocorrerá quando DBCC CHECKDB for executado.Not having a consistent serialization of byte-ordered user-defined types causes error 2537 when DBCC CHECKDB is run. Para obter mais informações, confira Requisitos do tipo definido pelo usuário.For more information, see User-Defined Type Requirements.

Como o Banco de dados de recursos pode ser modificado apenas no modo de usuário único, o comando DBCC CHECKDB não pode ser executado diretamente nele.Because the Resource database is modifiable only in single-user mode, the DBCC CHECKDB command cannot be run on it directly. No entanto, quando DBCC CHECKDB é executado no banco de dados mestre, um segundo CHECKDB também é executado internamente no banco de dados de recursos.However, when DBCC CHECKDB is executed against the master database, a second CHECKDB is also run internally on the Resource database. Isso significa que DBCC CHECKDB pode retornar resultados extras.This means that DBCC CHECKDB can return extra results. O comando retorna conjuntos de resultados extras quando nenhuma opção está definida ou quando a opção PHYSICAL_ONLY ou ESTIMATEONLY está definida.The command returns extra result sets when no options are set, or when either the PHYSICAL_ONLY or ESTIMATEONLY option is set.

Começando com o SQL Server 2005 (9.x)SQL Server 2005 (9.x) SP2, a execução de DBCC CHECKDB não limpa mais o cache de planos da instância do SQL ServerSQL Server.Starting with SQL Server 2005 (9.x)SQL Server 2005 (9.x) SP2, executing DBCC CHECKDB no longer clears the plan cache for the instance of SQL ServerSQL Server. Antes do SQL Server 2005 (9.x)SQL Server 2005 (9.x) SP2, a execução de DBCC CHECKDB limpava o cache de planos.Before SQL Server 2005 (9.x)SQL Server 2005 (9.x) SP2, executing DBCC CHECKDB clears the plan cache. A limpeza do cache do plano gera uma recompilação de todos os planos de execução posteriores e pode provocar uma queda repentina e temporária no desempenho da consulta.Clearing the plan cache causes recompilation of all later execution plans and may cause a sudden, temporary decrease in query performance.

Executando verificações de consistência lógica em índicesPerforming Logical Consistency Checks on Indexes

A verificação de consistência lógica em índices varia de acordo com o nível de compatibilidade do banco de dados, da seguinte maneira:Logical consistency checking on indexes varies according to the compatibility level of the database, as follows:

  • Se o nível de compatibilidade for 100 (SQL Server 2008SQL Server 2008) ou superior:If the compatibility level is 100 (SQL Server 2008SQL Server 2008) or higher:
  • A menos que NOINDEX esteja especificado, DBCC CHECKDB executará verificações de consistência física e lógica em uma única tabela e em todos os índices não clusterizados.Unless NOINDEX is specified, DBCC CHECKDB performs both physical and logical consistency checks on a single table and on all its nonclustered indexes. Entretanto, em índices XML, índices espaciais e exibições indexadas, por padrão são executadas somente as verificações de consistência física.However, on XML indexes, spatial indexes, and indexed views only physical consistency checks are performed by default.
  • Se WITH EXTENDED_LOGICAL_CHECKS for especificado, verificações lógicas serão executadas em uma exibição indexada, índices XML e índices espaciais, quando presentes.If WITH EXTENDED_LOGICAL_CHECKS is specified, logical checks are performed on an indexed view, XML indexes, and spatial indexes, where present. Por padrão, as verificações de consistência física são executadas antes das verificações de consistência lógica.By default, physical consistency checks are performed before the logical consistency checks. Se NOINDEX também estiver especificado, apenas as verificações lógicas serão executadas.If NOINDEX is also specified, only the logical checks are performed.

Essas verificações de consistência lógica comparam a tabela de índice interna do objeto de índice com a tabela do usuário à qual se está fazendo referência.These logical consistency checks cross check the internal index table of the index object with the user table that it is referencing. Para localizar linhas externas, uma consulta interna é construída para executar uma interseção completa das tabelas internas e do usuário.To find outlying rows, an internal query is constructed to perform a full intersection of the internal and user tables. A execução dessa consulta pode afetar bastante o desempenho e não é possível controlar seu andamento.Running this query can have a very high effect on performance, and its progress cannot be tracked. Portanto, recomendamos especificar WITH EXTENDED_LOGICAL_CHECKS apenas se você suspeitar de problemas de índice que não estão relacionados à dano físico ou se as somas de verificação em nível de página foram desativadas e você suspeitar de dano de hardware em nível de coluna.Therefore, we recommend that you specify WITH EXTENDED_LOGICAL_CHECKS only if you suspect index issues that are unrelated to physical corruption, or if page-level checksums have been turned off and you suspect column-level hardware corruption.

  • Se o índice for filtrado, DBCC CHECKDB executará verificações de consistência para verificar se as entradas do índice atendem ao predicado do filtro.If the index is a filtered index, DBCC CHECKDB performs consistency checks to verify that the index entries satisfy the filter predicate.
  • Se o nível de compatibilidade for 90 ou inferior, a menos que NOINDEX esteja especificado, DBCC CHECKDB executará verificações de consistência física e lógica em uma única tabela ou exibição indexada e em todos os índices XML e não clusterizados.If the compatibility level is 90 or less, unless NOINDEX is specified, DBCC CHECKDB performs both physical and logical consistency checks on a single table or indexed view and on all its nonclustered and XML indexes. Não há suporte para índices espaciais.Spatial indexes are not supported.
  • Começando com o SQL Server 2016, as verificações adicionais em colunas computadas persistentes, em colunas de UDT e em índices filtrados não são executadas por padrão, para evitar as avaliações de expressão caras.Starting with SQL Server 2016, additional checks on persisted computed columns, UDT columns, and filtered indexes will not run by default to avoid the expensive expression evaluations. Essa alteração reduz significativamente a duração de CHECKDB em bancos de dados que contêm esses objetos.This change greatly reduces the duration of CHECKDB against databases containing these objects. No entanto, as verificações de consistência física desses objetos sempre são concluídas.However, the physical consistency checks of these objects is always completed. Somente quando a opção EXTENDED_LOGICAL_CHECKS for especificada as avaliações de expressão serão executadas além das verificações lógicas já presentes (exibição indexada, índices XML e índices espaciais) como parte da opção EXTENDED_LOGICAL_CHECKS.Only when EXTENDED_LOGICAL_CHECKS option is specified will the expression evaluations be performed in addition to already present logical checks (indexed view, XML indexes, and spatial indexes) as part of the EXTENDED_LOGICAL_CHECKS option.

Para saber o nível de compatibilidade de um banco de dadosTo learn the compatibility level of a database

Instantâneo de banco de dados internoInternal Database Snapshot

DBCC CHECKDB usa um instantâneo do banco de dados interno para fornecer a consistência transacional necessária para executar essas verificações.DBCC CHECKDB uses an internal database snapshot for the transactional consistency needed to perform these checks. Isso evita bloqueio e problemas de simultaneidade quando esses comandos são executados.This prevents blocking and concurrency problems when these commands are executed. Para obter mais informações, confira Exibir o tamanho do arquivo esparso de um instantâneo de banco de dados (Transact-SQL) e a seção Uso de instantâneo de banco de dados interno do DBCC em DBCC (Transact-SQL).For more information, see View the Size of the Sparse File of a Database Snapshot (Transact-SQL) and the DBCC Internal Database Snapshot Usage section in DBCC (Transact-SQL). Se um instantâneo não puder ser criado, ou se a opção TABLOCK estiver especificada, DBCC CHECKDB irá adquirir bloqueios para obter a consistência necessária.If a snapshot cannot be created, or TABLOCK is specified, DBCC CHECKDB acquires locks to obtain the required consistency. Nesse caso, um bloqueio de banco de dados exclusivo é necessário para executar as verificações de alocação, e bloqueios de tabela compartilhados são necessários para executar as verificações de tabela.In this case, an exclusive database lock is required to perform the allocation checks, and shared table locks are required to perform the table checks. O DBCC CHECKDB falhará ao ser executado no mestre quando não for possível criar um instantâneo do banco de dados interno.DBCC CHECKDB fails when run against master if an internal database snapshot cannot be created. A execução de DBCC CHECKDB no tempdb não executa nenhuma verificação de alocação nem de catálogo e precisa adquirir bloqueios de tabela compartilhada para executar verificações de tabela.Running DBCC CHECKDB against tempdb does not perform any allocation or catalog checks and must acquire shared table locks to perform table checks. Isso porque, por razões de desempenho, instantâneos do banco de dados não estão disponíveis em tempdb.This is because, for performance reasons, database snapshots are not available on tempdb. Isso significa que não é possível obter a consistência transacional exigida.This means that the required transactional consistency cannot be obtained. No Microsoft SQL Server 2012 ou uma versão anterior do SQL Server, você pode encontrar mensagens de erro ao executar o comando DBCC CHECKDB para um banco de dados que tenha seus arquivos localizados em um volume formatado pelo ReFS.In Microsoft SQL Server 2012 or an earlier version of SQL Server, you may encounter error messages when you run the DBCC CHECKDB command for a database that has its files located on an ReFS-formatted volume. Para obter mais informações, confira o artigo 2974455 da base de dados de conhecimento: Comportamento de DBCC CHECKDB quando o banco de dados do SQL Server está localizado em um volume ReFS.For more information, see Knowledge Base article 2974455: DBCC CHECKDB behavior when the SQL Server database is located on an ReFS volume.

Verificando e reparando dados FILESTREAMChecking and Repairing FILESTREAM Data

Quando FILESTREAM está habilitado para um banco de dados e uma tabela, é possível armazenar opcionalmente BLOBs (objetos binários grandes) varbinary(max) no sistema de arquivos.When FILESTREAM is enabled for a database and table, you can optionally store varbinary(max) binary large objects (BLOBs) in the file system. Ao usar DBCC CHECKDB em um banco de dados que armazena BLOBs no sistema de arquivos, DBCC verifica a consistência em nível de vinculação entre o sistema de arquivos e o banco de dados.When using DBCC CHECKDB on a database that stores BLOBs in the file system, DBCC checks link-level consistency between the file system and database. Por exemplo, se uma tabela contiver uma coluna varbinary(max) que use o atributo FILESTREAM, o DBCC CHECKDB verificará se existe um mapeamento de um-para-um entre os diretórios e os arquivos do sistema de arquivos e entre as linhas e colunas da tabela e os valores das colunas.For example, if a table contains a varbinary(max) column that uses the FILESTREAM attribute, DBCC CHECKDB will check that there is a one-to-one mapping between file system directories and files and table rows, columns, and column values. DBCC CHECKDB poderá reparar dano se você especificar a opção REPAIR_ALLOW_DATA_LOSS.DBCC CHECKDB can repair corruption if you specify the REPAIR_ALLOW_DATA_LOSS option. Para reparar dano de FILESTREAM, o DBCC excluirá quaisquer linhas de tabela que não tiverem dados do sistema de arquivos.To repair FILESTREAM corruption, DBCC will delete any table rows that are missing file system data.

Práticas recomendadasBest Practices

É recomendável usar a opção PHYSICAL_ONLY para uso frequente em sistemas de produção.We recommend that you use the PHYSICAL_ONLY option for frequent use on production systems. O uso de PHYSICAL_ONLY pode reduzir significativamente o tempo de execução do DBCC CHECKDB em bancos de dados grandes.Using PHYSICAL_ONLY can greatly shorten run-time for DBCC CHECKDB on large databases. Também é recomendável executar DBCC CHECKDB periodicamente sem opções.We also recommend that you periodically run DBCC CHECKDB with no options. A frequência dessas execuções depende das execuções de negócios individuais e de seus ambientes de produção.How frequently you should perform these runs depends on individual businesses and their production environments.

Verificando objetos em paraleloChecking Objects in Parallel

Por padrão, DBCC CHECKDB executa a verificação paralela de objetos.By default, DBCC CHECKDB performs parallel checking of objects. O grau de paralelismo é automaticamente determinado pelo processador de consulta.The degree of parallelism is automatically determined by the query processor. O grau de máximo de paralelismo é configurado da mesma forma que as consultas paralelas.The maximum degree of parallelism is configured just like parallel queries. Para restringir o número máximo de processadores disponíveis para a verificação do DBCC, use sp_configure.To restrict the maximum number of processors available for DBCC checking, use sp_configure. Para obter mais informações, veja Configurar a opção max degree of parallelism de configuração de servidor.For more information, see Configure the max degree of parallelism Server Configuration Option. A verificação paralela pode ser desabilitada usando o sinalizador de rastreamento 2528.Parallel checking can be disabled by using trace flag 2528. Para obter mais informações, veja, Sinalizadores de rastreamento (Transact-SQL).For more information, see Trace Flags (Transact-SQL).

Observação

Este recurso não está disponível em todas as edições do SQL ServerSQL Server.This feature is not available in every edition of SQL ServerSQL Server. Para obter mais informações, consulte a verificação de consistência paralela na seção Gerenciamento do RDBMS de Recursos compatíveis com as edições do SQL Server 2016.For more information, see parallel consistency check in the RDBMS Manageability section of Features Supported by the Editions of SQL Server 2016.

Compreendendo mensagens de erro DBCCUnderstanding DBCC Error Messages

Depois que o comando DBCC CHECKDB é concluído, uma mensagem é gravada no log de erros do SQL ServerSQL Server.After the DBCC CHECKDB command finishes, a message is written to the SQL ServerSQL Server error log. Se o comando DBCC for executado com êxito, a mensagem indicará êxito e o tempo de execução do comando.If the DBCC command successfully executes, the message indicates success and the amount of time that the command ran. Se o comando DBCC parar antes de concluir a verificação por causa de um erro, a mensagem indicará que o comando foi finalizado, um valor de estado e o tempo de execução do comando.If the DBCC command stops before completing the check because of an error, the message indicates that the command was terminated, a state value, and the amount of time the command ran. A tabela a seguir lista e descreve os valores de estado que podem ser incluídos na mensagem.The following table lists and describes the state values that can be included in the message.

EstadoState DescriçãoDescription
00 O número do erro 8930 foi gerado.Error number 8930 was raised. Isso indica um dano nos metadados que finalizou o comando DBCC.This indicates a corruption in metadata that terminated the DBCC command.
11 O erro número 8967 foi gerado.Error number 8967 was raised. Ocorreu um erro interno de DBCC.There was an internal DBCC error.
22 Ocorreu uma falha durante o reparo do banco de dados em modo de emergência.A failure occurred during emergency mode database repair.
33 Isso indica um dano nos metadados que finalizou o comando DBCC.This indicates a corruption in metadata that terminated the DBCC command.
44 Uma declaração ou violação de acesso foi detectada.An assert or access violation was detected.
55 Ocorreu um erro desconhecido que finalizou o comando DBCC.An unknown error occurred that terminated the DBCC command.

Relatório de ErrosError Reporting

Um arquivo de despejo (SQLDUMP*nnnn*.txt) é criado no diretório LOG do SQL ServerSQL Server sempre que DBCC CHECKDB detecta um erro de corrupção.A dump file (SQLDUMP*nnnn*.txt) is created in the SQL ServerSQL Server LOG directory whenever DBCC CHECKDB detects a corruption error. Quando a coleta de dados Uso de Recursos e os recursos de Relatório de Erros recursos estão habilitados para a instância do SQL ServerSQL Server, o arquivo é encaminhado automaticamente ao MicrosoftMicrosoft.When the Feature Usage data collection and Error Reporting features are enabled for the instance of SQL ServerSQL Server, the file is automatically forwarded to MicrosoftMicrosoft. Os dados coletados são usados para aprimorar a funcionalidade do SQL ServerSQL Server.The collected data is used to improve SQL ServerSQL Server functionality. O arquivo de despejo contém os resultados do comando DBCC CHECKDB e saídas de diagnóstico adicionais.The dump file contains the results of the DBCC CHECKDB command and additional diagnostic output. O acesso é limitado à conta de serviço do SQL ServerSQL Server e aos membros da função sysadmin.Access is limited to the SQL ServerSQL Server service account and members of the sysadmin role. Por padrão, a função de sysadmin contém todos os membros do grupo BUILTIN\Administrators do Windows e do grupo do administrador local.By default, the sysadmin role contains all members of the Windows BUILTIN\Administrators group and the local administrator's group. O comando DBCC não falhará se o processo de coleta de dados falhar.The DBCC command does not fail if the data collection process fails.

Resolvendo errosResolving Errors

Se qualquer erro for relatado pelo DBCC CHECKDB, é recomendável restaurar o banco de dados do backup em vez de executar REPAIR com uma das opções de REPAIR.If any errors are reported by DBCC CHECKDB, we recommend restoring the database from the database backup instead of running REPAIR with one of the REPAIR options. Se não existir nenhum backup, a execução de REPAIR corrigirá os erros relatados.If no backup exists, running repair corrects the errors reported. A opção de reparo a ser usada é especificada no fim da lista de erros relatados.The repair option to use is specified at the end of the list of reported errors. No entanto, a correção de erros usando a opção REPAIR_ALLOW_DATA_LOSS pode exigir que algumas páginas e, portanto, alguns dados, sejam excluídos.However, correcting the errors by using the REPAIR_ALLOW_DATA_LOSS option might require deleting some pages, and therefore some data.

Em determinadas circunstâncias, podem ser inseridos valores no banco de dados que são inválidos ou estão fora do intervalo baseado no tipo de dados da coluna.Under some circumstances, values might be entered into the database that are not valid or out-of-range based on the data type of the column. O DBCC CHECKDB pode detectar valores de coluna inválidos para todos os tipos de dados de colunas.DBCC CHECKDB can detect column values that are not valid for all column data types. Portanto, a execução de DBCC CHECKDB com a opção DATA_PURITY em bancos de dados que foram atualizados de versões anteriores do SQL ServerSQL Server pode revelar erros preexistentes de valores de colunas.Therefore, running DBCC CHECKDB with the DATA_PURITY option on databases that have been upgraded from earlier versions of SQL ServerSQL Server might reveal preexisting column-value errors. Como o SQL ServerSQL Server não pode reparar estes erros automaticamente, o valor da coluna deve ser atualizado manualmente.Because SQL ServerSQL Server cannot automatically repair these errors, the column value must be manually updated. Se o CHECKDB detectar esse tipo de erro, ele retornará um aviso, o erro número 2570 e informações para identificar a linha afetada e corrigir o erro manualmente.If CHECKDB detects such an error, CHECKDB returns a warning, the error number 2570, and information to identify the affected row and manually correct the error.

O reparo pode ser executado sob uma transação do usuário para permitir que o usuário reverta as alterações feitas.The repair can be performed under a user transaction to let the user roll back the changes that were made. Se reparos forem revertidos, o banco de dados ainda conterá erros e deverá ser restaurado de um backup.If repairs are rolled back, the database will still contain errors and must be restored from a backup. Depois de concluir os reparos, faça um backup do banco de dados.After repairs are completed, back up the database.

Resolvendo erros no modo de emergência do banco de dadosResolving Errors in Database Emergency Mode

Quando um banco de dados tiver sido configurado como modo de emergência com a instrução ALTER DATABASE, o DBCC CHECKDB poderá executar alguns reparos especiais no banco de dados se a opção REPAIR_ALLOW_DATA_LOSS estiver especificada.When a database has been set to emergency mode by using the ALTER DATABASE statement, DBCC CHECKDB can perform some special repairs on the database if the REPAIR_ALLOW_DATA_LOSS option is specified. Esses reparos podem permitir que bancos de dados geralmente irrecuperáveis sejam colocados online em um estado fisicamente consistente.These repairs may allow for ordinarily unrecoverable databases to be brought back online in a physically consistent state. Esses reparos devem ser usados como um último recurso e apenas quando não for possível restaurar o banco de dados de um backup.These repairs should be used as a last resort and only when you cannot restore the database from a backup. Quando o banco de dados estiver definido como modo de emergência, o banco dedados será marcado como READ_ONLY, o registro em log será desabilitado e o acesso será limitado aos membros da função de servidor fixa sysadmin.When the database is set to emergency mode, the database is marked READ_ONLY, logging is disabled, and access is limited to members of the sysadmin fixed server role.

Observação

Não é possível executar o comando DBCC CHECKDB em modo de emergência dentro de uma transação de usuário e reverter a transação após a execução.You cannot run the DBCC CHECKDB command in emergency mode inside a user transaction and roll back the transaction after execution.

Quando o banco de dados está em modo de emergência e DBCC CHECKDB com a cláusula REPAIR_ALLOW_DATA_LOSS é executada, as seguintes ações são executadas:When the database is in emergency mode and DBCC CHECKDB with the REPAIR_ALLOW_DATA_LOSS clause is run, the following actions are taken:

  • O DBCC CHECKDB usa páginas que foram marcadas como inacessíveis devido a erros de E/S ou de soma de verificação, como se os erros não tivessem ocorrido.DBCC CHECKDB uses pages that have been marked inaccessible because of I/O or checksum errors, as if the errors have not occurred. Isso aumenta as chances de recuperação de dados do banco de dados.Doing this increases the chances for data recovery from the database.
  • O DBCC CHECKDB tenta recuperar o banco de dados usando técnicas normais de recuperação baseadas em log.DBCC CHECKDB attempts to recover the database using regular log-based recovery techniques.
  • Se, devido a danos no log de transações, a recuperação do banco de dados não tiver êxito, o log de transações será reconstruído.If, because of transaction log corruption, database recovery is unsuccessful, the transaction log is rebuilt. A reconstrução do log de transações pode resultar na perda de consistência transacional.Rebuilding the transaction log may result in the loss of transactional consistency.

Aviso

A opção REPAIR_ALLOW_DATA_LOSS é um recurso com suporte do SQL ServerSQL Server.The REPAIR_ALLOW_DATA_LOSS option is a supported feature of SQL ServerSQL Server. No entanto, não sempre é a melhor opção para colocar um banco de dados em um estado fisicamente consistente.However, it may not always be the best option for bringing a database to a physically consistent state. Se for bem-sucedida, a opção REPAIR_ALLOW_DATA_LOSS poderá resultar em alguma perda de dados.If successful, the REPAIR_ALLOW_DATA_LOSS option may result in some data loss. Na verdade, ela pode resultar em mais dados perdidos do que se um usuário restaurar o banco de dados por meio do último backup válido.In fact, it may result in more data lost than if a user were to restore the database from the last known good backup. MicrosoftMicrosoft sempre recomenda uma restauração de usuário do último backup válido como o principal método de recuperação de erros relatados pelo DBCC CHECKDB.always recommends a user restore from the last known good backup as the primary method to recover from errors reported by DBCC CHECKDB. A opção REPAIR_ALLOW_DATA_LOSS não é uma alternativa para a restauração de um backup realmente válido.The REPAIR_ALLOW_DATA_LOSS option is not an alternative for restoring from a known good backup. É uma opção emergencial de "último recurso" recomendada para uso somente se não for possível restaurar de um backup.It is an emergency "last resort" option recommended for use only if restoring from a backup is not possible.

Depois de recriar o log, não há nenhuma garantia ACID completa.After rebuilding the log, there is no full ACID guarantee.

Depois de recriar o log, o DBCC CHECKDB será executado automaticamente e relatará e corrigirá problemas de consistência física.After rebuilding the log, DBCC CHECKDB will be automatically performed and will both report and correct physical consistency issues.

Restrições de consistência de dados lógicos e lógica de negócios imposta devem ser validadas manualmente.Logical data consistency and business logic enforced constraints must be validated manually.

O tamanho do log de transação será deixado ao seu tamanho padrão e deve ser ajustado manualmente para o tamanho recente.The transaction log size will be left to its default size and must be manually adjusted back to its recent size.

Se o comando DBCC CHECKDB for bem-sucedido, o banco de dados estará em um estado fisicamente consistente e o status do banco de dados será definido como ONLINE.If the DBCC CHECKDB command succeeds, the database is in a physically consistent state and the database status is set to ONLINE. No entanto, o banco de dados poderá conter uma ou mais inconsistências transacionais.However, the database may contain one or more transactional inconsistencies. É recomendável executar o DBCC CHECKCONSTRAINTS para identificar qualquer falha na lógica de negócios e fazer backup do banco de dados imediatamente.We recommend that you run DBCC CHECKCONSTRAINTS to identify any business logic flaws and immediately back up the database. Se o comando DBCC CHECKDB falhar, o banco de dados não poderá ser reparado.If the DBCC CHECKDB command fails, the database cannot be repaired.

Executando DBCC CHECKDB com REPAIR_ALLOW_DATA_LOSS em bancos de dados replicadosRunning DBCC CHECKDB with REPAIR_ALLOW_DATA_LOSS in Replicated Databases

A execução do comando DBCC CHECKDB com a opção REPAIR_ALLOW_DATA_LOSS pode afetar bancos de dados de usuário (bancos de dados de publicação e assinatura) e o banco de dados de distribuição usado pela replicação.Running the DBCC CHECKDB command with the REPAIR_ALLOW_DATA_LOSS option can affect user databases (publication and subscription databases) and the distribution database used by replication. Bancos de dados de publicação e assinatura incluem tabelas publicadas e tabelas de metadados de replicação.Publication and subscription databases include published tables and replication metadata tables. Fique atento aos seguintes problemas potenciais nesses bancos de dados:Be aware of the following potential issues in these databases:

  • Tabelas publicadas.Published tables. Ações executadas pelo processo CHECKDB para reparar dados de usuário corrompidos podem não ser replicadas:Actions performed by the CHECKDB process to repair corrupt user data might not be replicated:
  • A replicação de mesclagem usa gatilhos para controlar alterações em tabelas publicadas.Merge replication uses triggers to track changes to published tables. Se linhas forem inseridas, atualizadas ou excluídas pelo processo CHECKDB, os gatilhos não serão disparados. Portanto a alteração não será replicada.If rows are inserted, updated, or deleted by the CHECKDB process, triggers do not fire; therefore, the change is not replicated.
  • A replicação transacional usa o log de transações para controlar alterações em tabelas publicadas.Transactional replication uses the transaction log to track changes to published tables. Em seguida, o Log Reader Agent move essas alterações para o banco de dados de distribuição.The Log Reader Agent then moves these changes to the distribution database. Alguns reparos do DBCC, embora sejam registrados, não podem ser replicados pelo Log Reader Agent.Some DBCC repairs, although logged, cannot be replicated by the Log Reader Agent. Por exemplo, se uma página de dados for desalocada pelo processo CHECKDB, o Log Reader Agent não converterá isso em uma instrução DELETE. Portanto a alteração não será replicada.For example, if a data page is deallocated by the CHECKDB process, the Log Reader Agent does not translate this to a DELETE statement; therefore, the change is not replicated.
  • Tabelas de metadados de replicação.Replication metadata tables. Ações executadas pelo processo CHECKDB para reparar tabelas de metadados de replicação corrompidas exigeem a remoção e a reconfiguração da replicação.Actions performed by the CHECKDB process to repair corrupt replication metadata tables require removing and reconfiguring replication.

Se você precisar executar o comando DBCC CHECKDB com a opção REPAIR_ALLOW_DATA_LOSS em um banco de dados de usuário ou de distribuição:If you have to run the DBCC CHECKDB command with the REPAIR_ALLOW_DATA_LOSS option on a user database or distribution database:

  1. Pare o sistema: Pare as atividades do banco de dados e de todos os outros bancos de dados da topologia da replicação e tente sincronizar todos os nós.Quiesce the system: Stop activity on the database and at all other databases in the replication topology, and then try to synchronize all nodes. Para obter mais informações, consulte Como confirmar uma topologia de replicação (Programação Transact-SQL de replicação).For more information, see Quiesce a Replication Topology (Replication Transact-SQL Programming).
  2. Execute DBCC CHECKDB.Execute DBCC CHECKDB.
  3. Se o relatório do DBCC CHECKDB incluir reparos de qualquer tabela no banco de dados de distribuição ou de qualquer tabela de metadados de replicação em um banco de dados de usuário, remova e reconfigure a replicação.If the DBCC CHECKDB report includes repairs for any tables in the distribution database or any replication metadata tables in a user database, remove and reconfigure replication. Para obter mais informações, consulte Desabilitar a publicação e a distribuição.For more information, see Disable Publishing and Distribution.
  4. Se o relatório do DBCC CHECKDB incluir reparos de qualquer tabela replicada, execute validação de dados para determinar se existem diferenças entre os dados do banco de dados de publicação e de assinatura.If the DBCC CHECKDB report includes repairs for any replicated tables, perform data validation to determine whether there are differences between the data in the publication and subscription databases.

Conjuntos de resultadosResult Sets

O DBCC CHECKDB retorna o conjunto de resultados a seguir.DBCC CHECKDB returns the following result set. Os valores podem variar exceto quando as opções ESTIMATEONLY, PHYSICAL_ONLY ou NO_INFOMSGS estiverem especificadas:The values might vary except when the ESTIMATEONLY, PHYSICAL_ONLY, or NO_INFOMSGS options are specified:

 DBCC results for 'model'.    
    
 Service Broker Msg 9675, Level 10, State 1: Message Types analyzed: 13.    
    
 Service Broker Msg 9676, Level 10, State 1: Service Contracts analyzed: 5.    
    
 Service Broker Msg 9667, Level 10, State 1: Services analyzed: 3.    
    
 Service Broker Msg 9668, Level 10, State 1: Service Queues analyzed: 3.    
    
 Service Broker Msg 9669, Level 10, State 1: Conversation Endpoints analyzed: 0.    
    
 Service Broker Msg 9674, Level 10, State 1: Conversation Groups analyzed: 0.    
    
 Service Broker Msg 9670, Level 10, State 1: Remote Service Bindings analyzed: 0.    
    
 DBCC results for 'sys.sysrowsetcolumns'.    
    
 There are 630 rows in 7 pages for object 'sys.sysrowsetcolumns'.    
    
 DBCC results for 'sys.sysrowsets'.    
    
 There are 97 rows in 1 pages for object 'sys.sysrowsets'.    
    
 DBCC results for 'sysallocunits'.    
    
 There are 195 rows in 3 pages for object 'sysallocunits'.    
    
 There are 0 rows in 0 pages for object "sys.sysasymkeys".    
    
 DBCC results for 'sys.syssqlguides'.    
    
 There are 0 rows in 0 pages for object "sys.syssqlguides".    
    
 DBCC results for 'sys.queue_messages_1977058079'.    
    
 There are 0 rows in 0 pages for object "sys.queue_messages_1977058079".    
    
 DBCC results for 'sys.queue_messages_2009058193'.    
    
 There are 0 rows in 0 pages for object "sys.queue_messages_2009058193".    
    
 DBCC results for 'sys.queue_messages_2041058307'.    
    
 There are 0 rows in 0 pages for object "sys.queue_messages_2041058307".    
    
 CHECKDB found 0 allocation errors and 0 consistency errors in database 'model'.    
    
 DBCC execution completed. If DBCC printed error messages, contact your system administrator.    

O DBCC CHECKDB retorna o conjunto de resultados (mensagem) a seguir quando NO_INFOMSGS está especificado:DBCC CHECKDB returns the following result set (message) when NO_INFOMSGS is specified:

 The command(s) completed successfully.

O DBCC CHECKDB retorna o conjunto de resultados a seguir quando PHYSICAL_ONLY está especificado:DBCC CHECKDB returns the following result set when PHYSICAL_ONLY is specified:

 DBCC results for 'model'.    
    
 CHECKDB found 0 allocation errors and 0 consistency errors in database 'master'.  
    
 DBCC execution completed. If DBCC printed error messages, contact your system administrator.

O DBCC CHECKDB retorna o conjunto de resultados a seguir quando ESTIMATEONLY está especificado.DBCC CHECKDB returns the following result set when ESTIMATEONLY is specified.

 Estimated TEMPDB space needed for CHECKALLOC (KB)    
    
 -------------------------------------------------  
    
 13   
    
 (1 row(s) affected)   
    
 Estimated TEMPDB space needed for CHECKTABLES (KB)    
    
 --------------------------------------------------    
    
 57 
    
 (1 row(s) affected)  
    
 DBCC execution completed. If DBCC printed error messages, contact your system administrator.

PermissõesPermissions

Requer associação à função de servidor fixa sysadmin ou à função de banco de dados fixa db_owner.Requires membership in the sysadmin fixed server role or the db_owner fixed database role.

ExemplosExamples

A.A. Verificando os bancos de dados atual e outro banco de dadosChecking both the current and another database

O exemplo a seguir executa DBCC CHECKDB para o banco de dados atual e o banco de dados AdventureWorks2012AdventureWorks2012.The following example executes DBCC CHECKDB for the current database and for the AdventureWorks2012AdventureWorks2012 database.

-- Check the current database.    
DBCC CHECKDB;    
GO    
-- Check the AdventureWorks2012 database without nonclustered indexes.    
DBCC CHECKDB (AdventureWorks2012, NOINDEX);    
GO    

B.B. Verificando o banco de dados atual, suprimindo mensagens informativasChecking the current database, suppressing informational messages

O exemplo a seguir verifica o banco de dados atual e suprime todas as mensagens informativas.The following example checks the current database and suppresses all informational messages.

DBCC CHECKDB WITH NO_INFOMSGS;    
GO    

Consulte TambémSee Also

DBCC (Transact-SQL)DBCC (Transact-SQL)
Exibir o tamanho do arquivo esparso de um instantâneo de banco de dados (Transact-SQL)View the Size of the Sparse File of a Database Snapshot (Transact-SQL)
sp_helpdb (Transact-SQL)sp_helpdb (Transact-SQL)
Tabelas do sistema (Transact-SQL)System Tables (Transact-SQL)