Optimizar el rendimiento de DBCC CHECKDB

Normalmente, DBCC CHECKDB y las instrucciones relacionadas deben leer cada página asignada del disco a la memoria para que se puedan comprobar. 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 SQL Server Database Engine (Motor de base de datos de SQL Server) a almacenar en cola los datos internos de DBCC CHECKDB en la base de datos tempdb. En segundo lugar, porque DBCC CHECKDB intenta optimizar la forma en la que lee los datos obtenidos del disco. Si una carga de trabajo que consume una gran cantidad de memoria está utilizando el mismo disco, se reducirá considerablemente la optimización, lo que provocará una ejecución más 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 y desde éste reduce el rendimiento. Independientemente de la actividad del sistema, el hecho de ejecutar DBCC CHECKDB con bases de datos de gran tamaño (respecto al de la memoria disponible) provoca que se almacenen datos en cola en la base de datos tempdb. Por lo tanto, se recomienda colocar la base de datos tempdb en discos rápidos, como un dispositivo RAID, separados de las bases de datos de usuario. Para obtener más información, vea ALTER DATABASE (Transact-SQL) y RAID.

Nota

La ejecución de DBCC CHECKDB ejecuta automáticamente 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.