Anda di halaman 1dari 3

Integridad y corrupcin en las bases de datos: DBCC

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.

DBCC CHECKDB WITH PHYSICAL_ONLY


Esta comprobacin se ha diseado para proporcionar una pequea comprobacin de
sobrecarga de la coherencia fsica de la base de datos; tambin detecta pginas
rasgadas, errores de suma de comprobacin y errores de hardware comunes que pueden
comprometer los datos del usuario. PHYSICAL_ONLY siempre implica NO_INFOMSGS y no
se permite con ninguna de las opciones de reparacin.
DBCC CHECKDB WITH NO_INFOMSGS
Suprime todos los mensajes de informacin
Si DBCC CHECKDB notifica errores, se recomienda restaurar la base de datos a partir de una
copia de seguridad en lugar de ejecutar REPAIR con una de sus opciones. La opcin de
reparacin que se debe utilizar se especifica al final de la lista de errores notificados por
CHECKDB. No obstante, la correccin de errores mediante la opcin REPAIR_ALLOW_DATA_LOSS
puede requerir eliminar algunas pginas y, por tanto, tambin algunos datos.
Si ejecutamos:
DBCC CHECKDB (BBDD, REPAIR_ALLOW_DATA_LOSS)
Intenta reparar todos los errores indicados. Estas reparaciones pueden ocasionar alguna
prdida de datos.

DBCC CHECKDB (BBDD, REPAIR_FAST)


La sintaxis se mantiene nicamente por compatibilidad con versiones anteriores. No se
realizan acciones de reparacin.
DBCC CHECKDB (BBDD, REPAIR_REBUILD)
Lleva a cabo rpidamente acciones de reparacin menores, como la reparacin de
claves adicionales en ndices sin agrupar, y reparaciones lentas como la regeneracin de
ndices. Estas reparaciones se pueden realizar sin riesgo de prdida de datos.

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

ningn efecto. Los mensajes de error se ordenan por identificador de objeto,


salvo en el caso de los mensajes generados desde la base de datos tempdb.
En SQL Server Management Studio, el nmero mximo de mensajes de error
devueltos es 1000. Cuando se especifica ALL_ERRORMSGS, se recomienda
ejecutar el comando DBCC con la utilidad sqlcmd o programando un trabajo del
Agente SQL Server para ejecutar el comando y dirigir el resultado a un
archivo. Cualquiera de estos mtodos garantizar que el comando se ejecute
una vez e informar de todos los mensajes de error.
EXTENDED_LOGICAL_CHECKS
Si el nivel de compatibilidad es 100 (SQL Server 2008) o superior, realiza
comprobaciones de coherencia lgica en una vista indizada, en ndices XML y en
ndices espaciales, en caso de que los haya.

Anda mungkin juga menyukai