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

SE APLICA A: síSQL Server síAzure SQL Database noAzure SQL Data Warehouse noAlmacenamiento de datos paralelos APPLIES TO: yesSQL Server yesAzure SQL Database noAzure SQL Data Warehouse noParallel Data Warehouse

Comprueba la asignación y la integridad estructural de todas las tablas y vistas indizadas del grupo de archivos especificado de la base de datos actual.Checks the allocation and structural integrity of all tables and indexed views in the specified filegroup of the current database. Icono de vínculo de tema Convenciones de sintaxis de Transact-SQLTopic link icon Transact-SQL Syntax Conventions

SintaxisSyntax

  
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
Es el nombre del grupo de archivos de la base de datos actual para el que se debe comprobar la asignación de tablas y la integridad estructural.Is the name of the filegroup in the current database for which to check table allocation and structural integrity. Si no se especifica o se especifica 0, el valor predeterminado es el grupo de archivos principal.If not specified, or if 0 is specified, the default is the primary filegroup. Los nombres de los grupos de archivos deben cumplir las reglas de los identificadores.Filegroup names must comply with the rules for identifiers.
filegroup_name no puede ser un grupo de archivos FILESTREAM.filegroup_name cannot be a FILESTREAM filegroup.

filegroup_idfilegroup_id
Es el número de identificación (identificador) del grupo de archivos de la base de datos actual para el que se debe comprobar la asignación de tablas y la integridad estructural.Is the filegroup identification (ID) number in the current database for which to check table allocation and structural integrity.

NOINDEXNOINDEX
Especifica que no se deben realizar comprobaciones intensivas de índices no clúster para las tablas de usuario.Specifies that intensive checks of nonclustered indexes for user tables should not be performed. Esto reduce el tiempo total de ejecución.This decreases the overall execution time. La opción NOINDEX no afecta a las tablas del sistema, ya que DBCC CHECKFILEGROUP siempre comprueba todos los índices de las tablas del sistema.NOINDEX does not affect system tables because DBCC CHECKFILEGROUP always checks all system table indexes.

ALL_ERRORMSGSALL_ERRORMSGS
Muestra un número ilimitado de errores por objeto.Displays an unlimited number of errors per object. De forma predeterminada, se muestran todos los mensajes de error.All error messages are displayed by default. Especificar u omitir esta opción no tiene ningún efecto.Specifying or omitting this option has no effect.

NO_INFOMSGSNO_INFOMSGS
Suprime todos los mensajes de información.Suppresses all informational messages.

TABLOCKTABLOCK
Hace que DBCC CHECKFILEGROUP obtenga bloqueos en lugar de utilizar una instantánea de base de datos interna.Causes DBCC CHECKFILEGROUP to obtain locks instead of using an internal database snapshot.

ESTIMATE ONLYESTIMATE ONLY
Muestra la cantidad de espacio para la base de datos tempdb que se calcula que es necesario para ejecutar DBCC CHECKFILEGROUP con todas las demás opciones especificadas.Displays the estimated amount of tempdb space required to run DBCC CHECKFILEGROUP with all the other specified options.

PHYSICAL_ONLYPHYSICAL_ONLY
Limita la comprobación de la integridad a la estructura física de la página, los encabezados de registro y la estructura física de árboles b.Limits the checking to the integrity of the physical structure of the page, record headers and the physical structure of B-trees. Se ha diseñado para proporcionar una pequeña comprobación de la sobrecarga de la coherencia física del grupo de archivos; esta comprobación también puede detectar páginas rasgadas y errores de hardware comunes que pueden comprometer los datos.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. Una ejecución completa de DBCC CHECKFILEGROUP puede tardar mucho más tiempo que en versiones anteriores.A full run of DBCC CHECKFILEGROUP may take considerably longer than in earlier versions. Este comportamiento se debe a las razones siguientes:This behavior occurs because of the following reasons:

  • Las comprobaciones lógicas son más exhaustivas.The logical checks are more comprehensive.
  • Algunas de las estructuras subyacentes que hay que comprobar son más complejas.Some of the underlying structures to be checked are more complex.
  • Se han agregado muchas comprobaciones nuevas para incluir las nuevas características.Many new checks have been introduced to include the new features.
    Por tanto, el uso de la opción PHYSICAL_ONLY puede llevar mucho menos tiempo para DBCC CHECKFILEGROUP en grupos de archivos grandes y, por ello, se recomienda si se usa frecuentemente en sistemas de producción.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. Aun así, se recomienda realizar periódicamente una ejecución completa de DBCC CHECKFILEGROUP.We still recommend that a full run of DBCC CHECKFILEGROUP be performed periodically. La frecuencia de estas ejecuciones depende de factores específicos de cada empresa y de los entornos de producción.The frequency of these runs depends on factors specific to individual businesses and production environments. PHYSICAL_ONLY siempre implica NO_INFOMSGS y no se permite con ninguna de las opciones de reparación.PHYSICAL_ONLY always implies NO_INFOMSGS and is not allowed with any one of the repair options.

Nota

Si se especifica PHYSICAL_ONLY, DBCC CHECKFILEGROUP omite todas las comprobaciones de datos de FILESTREAM.Specifying PHYSICAL_ONLY causes DBCC CHECKFILEGROUP to skip all checks of FILESTREAM data.

MAXDOPMAXDOP
Se aplica a: SQL ServerSQL Server 2014 SP2 a la versión actual.Applies to: SQL ServerSQL Server 2014 SP2 through current version.

Invalida la opción de configuración de grado máximo de paralelismo de sp_configure para la instrucción.Overrides the max degree of parallelism configuration option of sp_configure for the statement. MAXDOP puede superar el valor configurado con sp_configure.The MAXDOP can exceed the value configured with sp_configure. Si MAXDOP supera el valor configurado con Resource Governor, el motor de base de datos usa el valor MAXDOP de Resource Governor, descrito en 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). Se pueden aplicar todas las reglas semánticas utilizadas con la opción de configuración max degree of parallelism cuando se utiliza la sugerencia 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 obtener más información, vea Establecer la opción de configuración del servidor Grado máximo de paralelismo.For more information, see Configure the max degree of parallelism Server Configuration Option.

Precaución

Si MAXDOP se establece en cero, el servidor elige el grado máximo de paralelismo.If MAXDOP is set to zero then the server chooses the max degree of parallelism.

NotasRemarks

DBCC CHECKFILEGROUP y DBCC CHECKDB son comandos DBCC similares.DBCC CHECKFILEGROUP and DBCC CHECKDB are similar DBCC commands. La diferencia principal es que DBCC CHECKFILEGROUP se limita al grupo de archivos especificado y a las tablas necesarias.The main difference is that DBCC CHECKFILEGROUP is limited to the single specified filegroup and required tables. DBCC CHECKFILEGROUP ejecuta los siguientes comandos:DBCC CHECKFILEGROUP performs the following commands:

No es necesario ejecutar DBCC CHECKALLOC o DBCC CHECKTABLE independientemente de DBCC CHECKFILEGROUP.Running DBCC CHECKALLOC or DBCC CHECKTABLE separately from DBCC CHECKFILEGROUP is not required.

Instantánea de base de datos internaInternal Database Snapshot

DBCC CHECKFILEGROUP utiliza una instantánea de base de datos interna para proporcionar la coherencia transaccional que debe tener para realizar estas comprobaciones.DBCC CHECKFILEGROUP uses an internal database snapshot to provide the transactional consistency that it must have to perform these checks. Para más información, vea Ver el tamaño del archivo disperso de una instantánea de base de datos (Transact-SQL) y la sección "Uso de comandos DBCC en instantáneas internas de la base de datos" de 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). Si no se puede crear una instantánea o se especifica la opción TABLOCK, DBCC CHECKFILEGROUP adquiere bloqueos para obtener la coherencia necesaria.If a snapshot cannot be created, or the TABLOCK option is specified, DBCC CHECKFILEGROUP acquires locks to obtain the required consistency. En este caso, se requiere un bloqueo exclusivo de base de datos para realizar las comprobaciones de asignación y se requieren bloqueos compartidos de tabla para realizar las comprobaciones de tabla.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 hace que DBCC CHECKFILEGROUP se ejecute más rápido en una base de datos con mucha carga, pero disminuye la simultaneidad disponible en la base de datos mientras DBCC CHECKFILEGROUP está en ejecución.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.

Nota

Al ejecutar DBCC CHECKFILEGROUP en tempdb no se realiza ninguna comprobación de asignación y debe adquirir bloqueos de tabla compartidos para realizar las comprobaciones de tablas.Running DBCC CHECKFILEGROUP against tempdb does not perform any allocation checks and must acquire shared table locks to perform table checks. Esto es debido a que, por motivos de rendimiento, las instantáneas de base de datos no están disponibles en tempdb.This is because, for performance reasons, database snapshots are not available on tempdb. Eso significa que no es posible obtener la coherencia transaccional necesaria.This means that the required transactional consistency cannot be obtained.

Comprobar objetos en paraleloChecking Objects in Parallel

De forma predeterminada, DBCC CHECKFILEGROUP realiza comprobaciones paralelas de los objetos.By default, DBCC CHECKFILEGROUP performs parallel checking of objects. El grado de paralelismo se determina automáticamente mediante el procesador de consultas.The degree of parallelism is automatically determined by the query processor. El grado máximo de paralelismo se configura igual que las consultas paralelas.The maximum degree of parallelism is configured just like parallel queries. Para restringir el número máximo de procesadores disponibles para las comprobaciones DBCC, use sp_configure.To restrict the maximum number of processors available for DBCC checking, use sp_configure. Para obtener más información, vea Establecer la opción de configuración del servidor Grado máximo de paralelismo.For more information, see Configure the max degree of parallelism Server Configuration Option. La comprobación del paralelismo se puede deshabilitar utilizando el marcador de seguimiento 2528.Parallel checking can be disabled by using trace flag 2528. Para obtener más información, vea Marcas de seguimiento (Transact-SQL).For more information, see Trace Flags (Transact-SQL).

Índices no clúster en grupos de archivos independientesNonclustered Indexes on Separate Filegroups

Si un índice no clúster del grupo de archivos especificado está asociado a una tabla de otro grupo de archivos, no se comprueba el índice, ya que la tabla base no está disponible para la validación.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. Si una tabla del grupo de archivos especificado tiene un índice no clúster en otro grupo de archivos, dicho índice no se comprueba porque:If a table in the specified filegroup has a nonclustered index in another filegroup, the nonclustered index is not checked because of the following:

  • La estructura de la tabla base no depende de la estructura de un índice no clúster.The base table structure is not dependent on the structure of a nonclustered index. Los índices no clúster no tienen que ser examinados para validar la tabla base.Nonclustered indexes do not have to be scanned to validate the base table.
  • El comando DBCC CHECKFILEGROUP solo valida los objetos del grupo de archivos especificado.The DBCC CHECKFILEGROUP command validates objects only in the specified filegroup.
    Un índice clúster y una tabla no pueden estar en grupos de archivos diferentes; por lo tanto, las consideraciones anteriores solo se aplican a los índices no clúster.A clustered index and a table cannot be on different filegroups; therefore, the previous considerations apply only to nonclustered indexes.

Tablas con particiones en grupos de archivos independientesPartitioned Tables on Separate Filegroups

Cuando una tabla con particiones existe en varios grupos de archivos, DBCC CHECKFILEGROUP comprueba los conjuntos de filas de las particiones que existen en el grupo de archivos especificado y omite los de los demás.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. El mensaje informativo 2594 indica las particiones que no se comprobaron.Informational message 2594 indicates the partitions that were not checked. Los índices no clúster que no residan en el grupo de archivos especificado no se comprueban.Nonclustered indexes not resident on the specified filegroup are not checked.

Descripción de los mensajes de error de DBCCUnderstanding DBCC Error Messages

Cuando finaliza el comando DBCC CHECKFILEGROUP, se escribe un mensaje en el registro de errores de SQL ServerSQL Server.After the DBCC CHECKFILEGROUP command finishes, a message is written to the SQL ServerSQL Server error log. Si el comando DBCC se ejecuta correctamente, el mensaje lo indica, así como el tiempo de ejecución del comando.If the DBCC command successfully executes, the message indicates a successful completion and the amount of time that the command ran. Si el comando DBCC se detiene antes de finalizar la comprobación debido a un error, el mensaje indica que el comando se ha cancelado, un valor de estado y el tiempo de ejecución del 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. En la tabla siguiente se muestran y describen los valores de estado que pueden aparecer en el mensaje.The following table lists and describes the state values that can be included in the message.

StateState DescripciónDescription
00 Se ha generado el error número 8930.Error number 8930 was raised. Indica un daño en los metadatos que provoca la cancelación del comando DBCC.This indicates a metadata corruption that caused the DBCC command to terminate.
11 Se ha generado el error número 8967.Error number 8967 was raised. Error DBCC interno.There was an internal DBCC error.
22 Error durante una reparación de base de datos en modo de emergencia.A failure occurred during emergency mode database repair.
33 Indica un daño en los metadatos que provoca la cancelación del comando DBCC.This indicates a metadata corruption that caused the DBCC command to terminate.
44 Se ha detectado una infracción de acceso o aserción.An assert or access violation was detected.
55 Error desconocido que cancela el comando DBCC.An unknown error occurred that terminated the DBCC command.

Informes de erroresError Reporting

Se crea un archivo de minivolcado (SQLDUMPnnnn.txt) en el directorio LOG de SQL ServerSQL Server siempre que DBCC CHECKFILEGROUP detecta un error relacionado con datos dañados.A mini-dump file (SQLDUMPnnnn.txt) is created in the SQL ServerSQL Server LOG directory whenever DBCC CHECKFILEGROUP detects a corruption error. Si la recopilación de datos de uso de características y la creación informes de errores están habilitadas para la instancia de SQL ServerSQL Server, el archivo se reenvía automáticamente a 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. Los datos recopilados se utilizan para mejorar la funcionalidad de SQL ServerSQL Server.The collected data is used to improve SQL ServerSQL Server functionality. El archivo de volcado contiene los resultados del comando DBCC CHECKFILEGROUP y la salida de diagnóstico adicional.The dump file contains the results of the DBCC CHECKFILEGROUP command and additional diagnostic output. El archivo tiene listas de control de acceso discrecional (DACL) restringidas.The file has restricted discretionary access-control lists (DACLs). El acceso está limitado a la cuenta de servicio de SQL ServerSQL Server y a los miembros del rol sysadmin.Access is limited to the SQL ServerSQL Server service account and members of the sysadmin role. De forma predeterminada, el rol sysadmin contiene todos los miembros del grupo BUILTIN\Administradores de Windows y el grupo de administradores local.By default, the sysadmin role contains all members of the Windows BUILTIN\Administrators group and the local administrator's group. El comando DBCC no producirá error en caso de que se produzca un error en el proceso de recopilación de datos.The DBCC command does not fail if the data collection process fails.

Resolver erroresResolving Errors

Si DBCC CHECKFILEGROUP indica algún error, se recomienda restaurar la base de datos a partir de la copia de seguridad.If any errors are reported by DBCC CHECKFILEGROUP, we recommend restoring the database from the database backup. Tenga en cuenta que no se pueden especificar opciones de reparación para DBCC CHECKFILEGROUP.Note that repair options cannot be specified to DBCC CHECKFILEGROUP. Si no existe una copia de seguridad, es posible corregir los errores ejecutando DBCC CHECKDB con una opción de reparación especificada.If no backup exists, running DBCC CHECKDB with a repair option specified corrects the errors reported. La opción de reparación que se utilizará se especifica al final de la lista de errores.The repair option to use is specified at the end of the list if reported errors. La corrección de errores con la opción REPAIR_ALLOW_DATA_LOSS puede ocasionar la eliminación de algunas páginas y, en consecuencia, de datos.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 devuelve el siguiente conjunto de resultados (los valores pueden variar):DBCC CHECKFILEGROUP returns the following result set (values may vary):

  • Excepto cuando se especifica ESTIMATEONLY o NO_INFOMSGS.Except when ESTIMATEONLY or NO_INFOMSGS is specified.
  • Para la base de datos actual, si no se especifica ninguna base de datos, independientemente de si hay o no opciones especificadas (excepto 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.  

Si se especifica NO_INFOMSGS, DBCC CHECKFILEGROUP devuelve:If NO_INFOMSGS is specified, DBCC CHECKFILEGROUP returns:

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

Si se especifica ESTIMATEONLY, DBCC CHECKFILEGROUP devuelve (los valores pueden 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.  

PermisosPermissions

Debe pertenecer al rol fijo de servidor sysadmin o al rol fijo de base de datos db_owner .Requires membership in the sysadmin fixed server role or the db_owner fixed database role.

EjemplosExamples

A.A. Comprobar el grupo de archivos principal (PRIMARY) en la base de datosChecking the PRIMARY filegroup in the a database

En este ejemplo, se comprueba el grupo de archivos principal de la base de datos actual.The following example checks the primary filegroup of the current database.

  
DBCC CHECKFILEGROUP;  
GO  

B.B. Comprobar el grupo de archivos principal (PRIMARY) de AdventureWorks sin índices no clústerChecking the AdventureWorks PRIMARY filegroup without nonclustered indexes

En el ejemplo siguiente, se comprueba el grupo de archivos principal de la base de datos AdventureWorks2012 (excluidos los índices no agrupados). Para ello, se especifica el número de identificación del grupo de archivos principal y la opción 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. Comprobar el grupo de archivos principal (PRIMARY) con opcionesChecking the PRIMARY filegroup with options

En el ejemplo siguiente se comprueba el grupo de archivos principal de la base de datos master y se especifica la opción ESTIMATEONLY.The following example checks the master database primary filegroup and specifies the option ESTIMATEONLY.

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

Consulte tambiénSee 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)