DBCC CHECKFILEGROUP (Transact-SQL)DBCC CHECKFILEGROUP (Transact-SQL)

APLICA-SE A: simSQL Server simBanco de Dados SQL do Azure nãoSQL Data Warehouse do Azure nãoParallel Data Warehouse APPLIES TO: yesSQL Server yesAzure SQL Database noAzure SQL Data Warehouse noParallel Data Warehouse

Verifica a alocação e a integridade estrutural de todas as tabelas e exibições indexadas no grupo de arquivos especificado do banco de dados atual.Checks the allocation and structural integrity of all tables and indexed views in the specified filegroup of the current database. Ícone de link do tópico Convenções de sintaxe de Transact-SQLTopic link icon Transact-SQL Syntax Conventions

SintaxeSyntax

  
DBCC CHECKFILEGROUP   
[  
    [ ( { filegroup_name | filegroup_id | 0 }   
        [ , NOINDEX ]   
  ) ]  
    [ WITH   
        {   
            [ ALL_ERRORMSGS | NO_INFOMSGS ]   
            [ , TABLOCK ]   
            [ , ESTIMATEONLY ]  
            [ , PHYSICAL_ONLY ]    
            [ , MAXDOP  = number_of_processors ]  
        }   
    ]  
]  

ArgumentosArguments

filegroup_namefilegroup_name
É o nome do grupo de arquivos no banco de dados atual para o qual a alocação e integridade estrutural de tabela devem ser verificadas.Is the name of the filegroup in the current database for which to check table allocation and structural integrity. Se não for especificado, ou se 0 for especificado, o padrão será o grupo de arquivos primário.If not specified, or if 0 is specified, the default is the primary filegroup. Os nomes de grupos de arquivos precisam estar em conformidade com as regras para identificadores.Filegroup names must comply with the rules for identifiers.
filegroup_name não pode ser um grupo de arquivos FILESTREAM.filegroup_name cannot be a FILESTREAM filegroup.

filegroup_idfilegroup_id
É a ID (número de identificação) do grupo de arquivos no banco de dados atual para o qual a alocação e a integridade estrutural da tabela devem ser verificadas.Is the filegroup identification (ID) number in the current database for which to check table allocation and structural integrity.

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 DBCC CHECKFILEGROUP sempre verifica todos os índices de tabela de sistema.NOINDEX does not affect system tables because DBCC CHECKFILEGROUP always checks all system table indexes.

ALL_ERRORMSGSALL_ERRORMSGS
Exibe um número ilimitado de erros por objeto.Displays an unlimited number of 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.

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

TABLOCKTABLOCK
Faz com que DBCC CHECKFILEGROUP obtenha bloqueios em vez de usar um instantâneo do banco de dados interno.Causes DBCC CHECKFILEGROUP to obtain locks instead of using an internal database snapshot.

ESTIMATE ONLYESTIMATE ONLY
Exibe a quantidade estimada de espaço tempdb necessária para executar DBCC CHECKFILEGROUP com todas as outras opções especificadas.Displays the estimated amount of tempdb space required to run DBCC CHECKFILEGROUP with all the other specified options.

PHYSICAL_ONLYPHYSICAL_ONLY
Limita a verificação à integridade da estrutura física da página, dos cabeçalhos de registros e da estrutura física de árvores B.Limits the checking to the integrity of the physical structure of the page, record headers and the physical structure of B-trees. Criada para fornecer uma pequena verificação de sobrecarga da consistência física do grupo de arquivos, essa verificação também pode detectar páginas fragmentadas e falhas comuns de hardware que podem comprometer os dados.Designed to provide a small overhead check of the physical consistency of the filegroup, this check can also detect torn pages, and common hardware failures that can compromise data. Uma execução completa de DBCC CHECKFILEGROUP pode demorar muito mais em versões anteriores.A full run of DBCC CHECKFILEGROUP may take considerably longer than in earlier versions. Esse comportamento ocorre devido às seguintes razões:This behavior occurs because of the following reasons:

  • 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 provocar um tempo de execução muito mais curto para DBCC CHECKFILEGROUP em grupos de arquivos grandes e, portanto, é recomendado para uso frequente em sistemas de produção.Therefore, using the PHYSICAL_ONLY option may cause a much shorter run-time for DBCC CHECKFILEGROUP on large filegroups and is therefore recommended for frequent use on production systems. É recomendável ainda uma execução completa de DBCC CHECKFILEGROUP periodicamente.We still recommend that a full run of DBCC CHECKFILEGROUP 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. PHYSICAL_ONLY sempre implica em NO_INFOMSGS e não é permitido com nenhuma das opções de reparo.PHYSICAL_ONLY always implies NO_INFOMSGS and is not allowed with any one of the repair options.

Observação

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

MAXDOPMAXDOP
Aplica-se ao: SQL ServerSQL Server SP2 2014 até a versão atual.Applies to: SQL ServerSQL Server 2014 SP2 through current version.

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 usará o valor de MAXDOP do Resource Governor, descrito em ALTER WORKLOAD GROUP (Transact-SQL).If MAXDOP exceeds the value configured with Resource Governor, the Database Engine uses the Resource Governor MAXDOP value, described in ALTER WORKLOAD GROUP (Transact-SQL). 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.

Cuidado

Se MAXDOP estiver definido como 0, o servidor escolherá o max degree of parallelism.If MAXDOP is set to zero then the server chooses the max degree of parallelism.

RemarksRemarks

DBCC CHECKFILEGROUP e DBCC CHECKDB são comandos DBCC semelhantes.DBCC CHECKFILEGROUP and DBCC CHECKDB are similar DBCC commands. A principal diferença é que DBCC CHECKFILEGROUP é limitado ao único grupo de arquivos especificado e às tabelas necessárias.The main difference is that DBCC CHECKFILEGROUP is limited to the single specified filegroup and required tables. DBCC CHECKFILEGROUP executa os seguintes comandos:DBCC CHECKFILEGROUP performs the following commands:

A execução de DBCC CHECKALLOC ou de DBCC CHECKTABLE separadamente de DBCC CHECKFILEGROUP não é necessária.Running DBCC CHECKALLOC or DBCC CHECKTABLE separately from DBCC CHECKFILEGROUP is not required.

Instantâneo de banco de dados internoInternal Database Snapshot

DBCC CHECKFILEGROUP usa um instantâneo do banco de dados interno para fornecer a consistência transacional necessária ao executar essas verificações.DBCC CHECKFILEGROUP uses an internal database snapshot to provide the transactional consistency that it must have to perform these checks. 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 for especificada, DBCC CHECKFILEGROUP irá adquirir bloqueios para obter a consistência necessária.If a snapshot cannot be created, or the TABLOCK option is specified, DBCC CHECKFILEGROUP 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. TABLOCK faz com que DBCC CHECKFILEGROUP 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 causes DBCC CHECKFILEGROUP to run faster on a database under heavy load, but decreases the concurrency available on the database while DBCC CHECKFILEGROUP is running.

Observação

A execução de DBCC CHECKFILEGROUP em relação a tempdb não executa nenhuma verificação de alocação e deve adquirir bloqueios de tabela compartilhados para executar verificações de tabela.Running DBCC CHECKFILEGROUP against tempdb does not perform any allocation 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.

Verificando objetos em paraleloChecking Objects in Parallel

Por padrão, DBCC CHECKFILEGROUP executa a verificação paralela de objetos.By default, DBCC CHECKFILEGROUP 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).

Índices não clusterizados em grupos de arquivos separadosNonclustered Indexes on Separate Filegroups

Se um índice não clusterizado no grupo de arquivos especificado estiver associado a uma tabela em outro grupo de arquivos, o índice não é verificado porque a tabela base não está disponível para validação.If a nonclustered index in the specified filegroup is associated with a table in another filegroup, the index is not checked because the base table is not available for validation. Se uma tabela no grupo de arquivos especificado tiver um índice não clusterizado em outro grupo de arquivos, o índice não clusterizado não será verificado por causa do seguinte:If a table in the specified filegroup has a nonclustered index in another filegroup, the nonclustered index is not checked because of the following:

  • A estrutura da tabela base não é dependente da estrutura de um índice não clusterizado.The base table structure is not dependent on the structure of a nonclustered index. Os índices não clusterizados não precisam ser examinados para validar a tabela base.Nonclustered indexes do not have to be scanned to validate the base table.
  • O comando DBCC CHECKFILEGROUP valida objetos somente no grupo de arquivos especificado.The DBCC CHECKFILEGROUP command validates objects only in the specified filegroup.
    Um índice clusterizado e uma tabela não podem estar em grupos de arquivos diferentes; portanto as considerações anteriores se aplicam somente a índices não clusterizados.A clustered index and a table cannot be on different filegroups; therefore, the previous considerations apply only to nonclustered indexes.

Tabelas particionadas em grupos de arquivos separadosPartitioned Tables on Separate Filegroups

Quando uma tabela particionada existe em vários grupos de arquivos, o DBCC CHECKFILEGROUP verifica os conjuntos de linhas de partição que existem no grupo de arquivos especificado e ignora os conjuntos de linhas nos outros grupos de arquivos.When a partitioned table exists on multiple filegroups, DBCC CHECKFILEGROUP checks the partition rowsets that exist on the specified filegroup and ignores the rowsets in the other filegroups. A mensagem informativa 2594 indica as partições que não foram verificadas.Informational message 2594 indicates the partitions that were not checked. Índices não clusterizados não residentes no grupo de arquivos especificado não são verificados.Nonclustered indexes not resident on the specified filegroup are not checked.

Compreendendo mensagens de erro DBCCUnderstanding DBCC Error Messages

Depois que o comando DBCC CHECKFILEGROUP é concluído, uma mensagem é gravada no log de erros do SQL ServerSQL Server.After the DBCC CHECKFILEGROUP command finishes, a message is written to the SQL ServerSQL Server error log. Se o comando DBCC for executado com êxito, a mensagem indicará uma conclusão bem-sucedida e o tempo de execução do comando.If the DBCC command successfully executes, the message indicates a successful completion and the amount of time that the command ran. Se o comando DBCC parar antes de concluir a verificação devido a um erro, a mensagem indicará que o comando foi finalizado, um valor de estado e a duração da execução do comando.If the DBCC command stops before completing the check because of an error, the message indicates 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 de metadados que provocou a finalização do comando DBCC.This indicates a metadata corruption that caused the DBCC command to terminate.
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 de metadados que provocou a finalização do comando DBCC.This indicates a metadata corruption that caused the DBCC command to terminate.
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 miniarquivo de despejo (SQLDUMPnnnn.txt) é criado no diretório LOG do SQL ServerSQL Server sempre que DBCC CHECKFILEGROUP detecta um erro de corrupção.A mini-dump file (SQLDUMPnnnn.txt) is created in the SQL ServerSQL Server LOG directory whenever DBCC CHECKFILEGROUP detects a corruption error. Quando os recursos de coleta de dados Uso de Recursos e Relatório de Erros são habilitados para a instância do SQL ServerSQL Server, o arquivo é encaminhado automaticamente à 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 CHECKFILEGROUP e saídas de diagnóstico adicionais.The dump file contains the results of the DBCC CHECKFILEGROUP command and additional diagnostic output. O arquivo tem DACLs (listas de controle de acesso discricionário) restritas.The file has restricted discretionary access-control lists (DACLs). 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 sysadmin contém todos os membros do grupo BUILTIN\Administradores 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 informado por DBCC CHECKFILEGROUP, recomendamos a restauração do banco de dados com o backup de banco de dados.If any errors are reported by DBCC CHECKFILEGROUP, we recommend restoring the database from the database backup. Observe que as opções de reparo não podem ser especificadas para DBCC CHECKFILEGROUP.Note that repair options cannot be specified to DBCC CHECKFILEGROUP. Se nenhum backup existir, a execução de DBCC CHECKDB com uma opção de reparo especificada corrige os erros relatados.If no backup exists, running DBCC CHECKDB with a repair option specified corrects the errors reported. A opção de reparo a ser usada será especificada no fim da lista se erros forem relatados.The repair option to use is specified at the end of the list if reported errors. A correção de erros usando a opção REPAIR_ALLOW_DATA_LOSS pode exigir que algumas páginas e, portanto, dados, sejam excluídos.Correcting the errors by using the REPAIR_ALLOW_DATA_LOSS option might require that some pages, and therefore data, be deleted.

Conjuntos de resultadosResult Sets

DBCC CHECKFILEGROUP retorna o seguinte conjunto de resultados (os valores podem variar):DBCC CHECKFILEGROUP returns the following result set (values may vary):

  • Exceto quando ESTIMATEONLY ou NO_INFOMSGS é especificado.Except when ESTIMATEONLY or NO_INFOMSGS is specified.
  • Para o banco de dados atual, se nenhum banco de dados estiver especificado, se todas as opções estiverem especificadas ou não (exceto NOINDEX).For the current database, if no database is specified, whether or not any options (except NOINDEX) are specified.
DBCC results for 'master'.  
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 2340 rows in 16 pages for object 'spt_values'.  
DBCC results for 'MSreplication_options'.  
There are 2 rows in 1 pages for object 'MSreplication_options'.  
CHECKFILEGROUP found 0 allocation errors and 0 consistency errors in database 'master'.  
DBCC execution completed. If DBCC printed error messages, contact your system administrator.  

Se NO_INFOMSGS estiver especificado, DBCC CHECKFILEGROUP retornará:If NO_INFOMSGS is specified, DBCC CHECKFILEGROUP returns:

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

Se ESTIMATEONLY estiver especificado, DBCC CHECKFILEGROUP retornará (os valores podem variar):If ESTIMATEONLY is specified, DBCC CHECKFILEGROUP returns (values may vary):

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

PermissõesPermissions

Exige 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 o grupo de arquivos PRIMARY de um banco de dadosChecking the PRIMARY filegroup in the a database

O exemplo a seguir verifica o grupo de arquivos primário do banco de dados atual.The following example checks the primary filegroup of the current database.

  
DBCC CHECKFILEGROUP;  
GO  

B.B. Verificando o grupo de arquivos PRIMARY de AdventureWorks sem índices não clusterizadosChecking the AdventureWorks PRIMARY filegroup without nonclustered indexes

O exemplo a seguir verifica o grupo de arquivos primário do banco de dados AdventureWorks2012 (excluindo os índices não clusterizados) especificando o número de identificação do grupo de arquivos primário e NOINDEX.The following example checks the AdventureWorks2012 database primary filegroup (excluding nonclustered indexes) by specifying the identification number of the primary filegroup, and by specifying NOINDEX.

USE AdventureWorks2012;  
GO  
DBCC CHECKFILEGROUP (1, NOINDEX);  
GO  

C.C. Verificando o grupo de arquivos PRIMARY com opçõesChecking the PRIMARY filegroup with options

O exemplo a seguir verifica o grupo de arquivos primário do banco de dados master e especifica a opção ESTIMATEONLY.The following example checks the master database primary filegroup and specifies the option ESTIMATEONLY.

USE master;  
GO  
DBCC CHECKFILEGROUP (1)  
WITH ESTIMATEONLY;  

Consulte TambémSee Also

DBCC (Transact-SQL)DBCC (Transact-SQL)
FILEGROUP_ID (Transact-SQL)FILEGROUP_ID (Transact-SQL)
sp_helpfile (Transact-SQL)sp_helpfile (Transact-SQL)
sp_helpfilegroup (Transact-SQL)sp_helpfilegroup (Transact-SQL)
sys.sysfilegroups (Transact-SQL)sys.sysfilegroups (Transact-SQL)
DBCC CHECKDB (Transact-SQL)DBCC CHECKDB (Transact-SQL)
DBCC CHECKALLOC (Transact-SQL)DBCC CHECKALLOC (Transact-SQL)
DBCC CHECKTABLE (Transact-SQL)DBCC CHECKTABLE (Transact-SQL)