miércoles, 11 de octubre de 2017

SQL Server DBCC CHECKFILEGROUP

Comando DBCC CHECKFILEGROUP


Ya he especificado, en Comandos DBCC de validación, que este comando comprueba la asignación y la integridad estructural de todas las tablas y vistas indexadas en el grupo de archivos especificado de la base de datos actual. Este comando es similar a DBCC CHECKDB, siendo principalmente la diferencia la de que este comendo se limita al grupo de archivos que se indica y a las tablas necesarias.
Este comando tiene como sintaxis básica la siguiente:

USE database_name;
GO
DBCC CHECKFILEGROUP
En este caso se lleva a cabo la comprobación de las tablas y la integridad estructural del grupo de archivos de la base de datos actual. Se debe recordar que se trata de la base de datos actual y que por omisión se trata del grupo de archivos denominado PRIMARY, que es el grupo de archivos principal.

La sintaxis que se utiliza a menudo es:

USE database_name;
GO
DBCC CHECKFILEGROUP (fg)
Siendo en este caso que se lleva a cabo la comprobación del grupo de archivos fg que se ha definido en la base de datos. Es posible que se indique en forma adicional que no se lleve a cabo la comprobación de los índices no clustered, siendo en este caso la sintaxis siguiente:

USE database_name;
GO
DBCC CHECKFILEGROUP (fg, NOINDEX)
De esta forma no se llevaran a cabo las comprobaciones intensivas de los índices de las tablas de usuario, esto reducirá el tiempo requerido, sin embargo se debe indicar que el comando sí comprobara los índices de las tablas del sistema. La sintaxis e información completa de este comando se encuentran en los libros en línea de Microsoft SQL Server.

Existen algunas opciones que pueden ser utilizadas con el comando, estas opciones son:

ALL_ERRORMSGS
Muestra todos los mensajes de error. De forma predeterminada, se muestran todos los mensajes de error. Especificar u omitir esta opción no tiene ningún efecto.
NO_INFOMSGS
Suprime todos los mensajes de información.

TABLOCK
Hace que el comando DBCC obtenga bloqueos en vez de utilizar una instantánea de base de datos interna.
ESTIMATEONLY
Muestra la cantidad estimada de espacio de tempdb que se necesita para ejecutar DBCC CHECKFILEGROUP cuando todas las demás opciones están especificadas.
PHYSICAL_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 los árboles balanceados.
MAXDROP = num_proc
Invalida el grado máximo de paralelismo opción de configuración de sp_configure para la instrucción. El MAXDOP que se indique en este caso, puede superar el valor configurado con sp_configure. Recuerde que debe validar el número de procesos en paralelo que puede utilizar, dependiendo de su configuración.

Ejemplos de DBCC CHECKFILEGROUP


Mostraré algunos ejemplos de uso de este comando:

USE db1;
GO
DBCC CHEKFILEFROUP (fg) WITH ALL_ERRORMSGS

Este comando efectuará la comprobación del grupo de archivos fg  de la base de datos actual, se ha indicado db1,  mostrando todos los mensajes de error encontrados.
USE db1;
GO
DBCC CHECKFILEGROUP (fg, NOINDEX) WITH NO_INFOMSGS

Este comando efectuará la comprobación del grupo de archivos fg de la base de datos actual sin comprobar los índices no clustered de las tablas de usuario y sin proporcionar mensajes, solo el resultado final.
USE db1;
GO
DBCC CHECKFILEGROUP (fg, NOINDEX) WITH ESTIMATEONLY

Este comando comprueba el grupo de archivos fg de la base de datos actual mostrando el estimado de espacio requerido por el comando.

Notas de Microsoft
La funcionalidad de DBCC CHECKFILEGROUP ejecuta DBCC CHECKALLOC del grupo de archivos  y DBCC CHECKTABLE de cada tabla o vista indexada en el grupo de archivos. Por ello no es necesario ejecutar DBCC CHECKALLOC o DBCC CHECKTABLE de forma independiente.

Comentarios


En el caso de que se ejecute la opción PHYSICAL_ONLY, la ejecución puede tardar menos tiempo en grupos de archivos grandes, por lo que se recomienda hacer de forma periódica la comprobación, se debe indicar que esta opción implica NO_INFOMSGS.
En el caso de usar MAXDOP para especificar la comprobación en paralelo, debe tomarse en cuenta el uso de las reglas semánticas de opción de configuración para max degree of parallelism. Si se establece en cero, el servidor elige el grado máximo de paralelismo que mas convenga en la ejecución.

No hay comentarios.:

Publicar un comentario