CHECKDB
Si se ejecuta DBCC CHECKDB cuando ya hay mucha actividad en el sistema, se deteriora el
rendimiento de DBCC por dos motivos. En primer lugar, porque hay menos memoria disponible y
se fuerza al motor de base de datos de SQL Server a almacenar los datos internos de
DBCC CHECKDB en la base de datos tempdb. En segundo lugar, Si una carga de trabajo que
consume una gran cantidad de memoria y est utilizando el mismo disco, donde se encuentran
los ficheros de la base de datos, la cual esta siendo tratada por CHECKDB, se ver afectado el
rendimiento provocando una ejecucin ms lenta.
Dado que la base de datos tempdb reside en disco, el cuello de botella de las operaciones de E/S
que se produce a medida que se escriben los datos en el disco, independientemente de la
actividad del sistema, hacen recomiendar colocar la base de datos tempdb en discos rpidos,
como un dispositivo RAID, separados de las bases de datos de usuario.
Si ejecutamos:
DBCC CHECKDB WITH ESTIMATEONLY
Muestra la cantidad de espacio para la base de datos tempdb que se prev necesario
para ejecutar DBCC CHECKDB con todas las dems opciones especificadas.
La ejecucin de DBCC CHECKDB ejecuta automticamente DBCC CHECKTABLE para cada tabla
de la base de datos, as como DBCC CHECKALLOC y DBCC CHECKCATALOG, por lo que deja de ser
necesario ejecutarlos independientemente.
DBCC CHECKDB no examina los ndices deshabilitados.
Si ejecutamos:
DBCC CHECKDB WITH DATA_PURITY
Hace que DBCC CHECKDB compruebe si la base de datos contiene valores de columna
que no son vlidos o estn fuera del intervalo correcto. Por ejemplo, DBCC CHECKDB
detecta las columnas cuyos valores de fecha y hora son superiores o inferiores al
intervalo de valores vlido para el tipo de datos datetime; o bien las columnas del tipo
de datos decimal o numrico aproximado con valores de escala o precisin que no son
vlidos.
SINTAXIS
DBCC CHECKDB
('prueba', NOINDEX) WITH PHYSICAL_ONLY
NOINDEX
Especifica que no se deben realizar comprobaciones intensivas de ndices no
clster para las tablas de usuario. Esto reduce el tiempo total de
ejecucin. NOINDEX no afecta a las tablas del sistema, porque las
comprobaciones de integridad siempre se realizan en los ndices de las tablas
del sistema.
TABLOCK
Hace que DBCC CHECKDB obtenga bloqueos en lugar de utilizar una
instantnea de base de datos interna. Se incluye un bloqueo exclusivo (X) a
corto plazo en la base de datos. TABLOCK hace que DBCC CHECKDB se ejecute
ms rpido en una base de datos con mucha carga, pero disminuye la
simultaneidad disponible en la base de datos mientras DBCC CHECKDB est en
ejecucin.
TABLOCK limita las comprobaciones que se llevan a cabo; DBCC CHECKCATALOG
no se ejecuta en la base de datos y los datos de Service Broker no se validan.
DBCC CHECKDB WITH TABLOCK
ALL_ERRORMSGS
Muestra todos los errores notificados por objeto. De forma predeterminada, se
muestran todos los mensajes de error. Especificar u omitir esta opcin no tiene