KB2634571: la mejora del comando DBCC CHECKDB puede mejorar el rendimiento al usar la opción PHYSICAL_ONLY

Se aplica a: SQL Server 2008 R2 DatacenterSQL Server 2008 R2 DeveloperSQL Server 2008 R2 Enterprise

Microsoft distribuye las soluciones Microsoft SQL Server 2008 R2, SQL Server 2008 R2 SP1 y SQL Server 2008 como un archivo que se puede descargar. Debido a que las correcciones son acumulativas, cada versión nueva contiene todas las revisiones y todas las revisiones de seguridad incluidas en las versiones anteriores de SQL Server 2008 R2, SQL Server 2008 R2 SP1 y SQL Server 2008.

Introducción

El comando DBCC CHECKDB equilibra la necesidad entre rendimiento y recursos. Por lo tanto, de forma predeterminada, el comando DBCC CHECKDB puede no maximizar el uso de recursos cuando se ejecutan comprobaciones de coherencia para una base de datos.Por ejemplo, el comando DBCC CHECKDB puede no maximizar el uso de e/s de disco cuando se ejecutan comprobaciones de coherencia para una base de datos.

Resolución


Información sobre la actualización acumulativa

Service Pack 2 de SQL Server 2008

La corrección para este problema se publicó por primera vez en la actualización acumulativa 9 para SQL Server 2008 Service Pack 2. Para obtener más información acerca de este paquete de actualización acumulativa, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:

2673382 Paquete de actualización acumulativa 9 para SQL Server 2008 Service Pack 2

Nota: Como las compilaciones son acumulativas, cada nueva versión de corrección contiene todas las revisiones y todas las revisiones de seguridad incluidas en la versión anterior de corrección de SQL Server 2008. Le recomendamos que considere la posibilidad de aplicar la versión de corrección más reciente que contenga este Hotfix. Para obtener más información, consulte el artículo siguiente de Microsoft Knowledge Base:

2402659 Las compilaciones de SQL Server 2008 que se lanzaron después de que se publicó SQL Server 2008 Service Pack 2

Los Hotfix 2008 de Microsoft SQL Server se crean para determinados Service Packs de SQL Server. Debe aplicar una revisión de SQL Server 2008 Service Pack 2 a una instalación de SQL Server 2008 Service Pack 2. De forma predeterminada, cualquier Hotfix proporcionado en un Service Pack de SQL Server se incluye en el siguiente Service Pack de SQL Server.

Service Pack 3 de SQL Server 2008

La corrección para este problema se publicó por primera vez en la actualización acumulativa 4 para SQL Server 2008 Service Pack 3. Para obtener más información acerca de este paquete de actualización acumulativa, consulte el siguiente artículo en Microsoft Knowledge Base:

2673383 Paquete de actualización acumulativa 4 para SQL Server 2008 Service Pack 3

Nota Como las compilaciones son acumulativas, cada nueva versión de corrección contiene todas las revisiones y todas las revisiones de seguridad incluidas en la versión anterior de corrección de SQL Server 2008. Microsoft recomienda que considere la posibilidad de aplicar la versión de corrección más reciente que contenga este Hotfix. Para obtener más información, consulte el artículo siguiente de Microsoft Knowledge Base:

2629969 Las compilaciones de SQL Server 2008 que se lanzaron después de que se publicó SQL Server 2008 Service Pack 3

Los Hotfix 2008 de Microsoft SQL Server se crean para determinados Service Packs de SQL Server. Debe aplicar una revisión de SQL Server 2008 Service Pack 3 a una instalación de SQL Server 2008 Service Pack 3. De forma predeterminada, cualquier Hotfix proporcionado en un Service Pack de SQL Server se incluye en el siguiente Service Pack de SQL Server.

Paquete de actualización acumulativa 11 para SQL Server 2008 R2

La corrección para este problema se publicó por primera vez en la actualización acumulativa 11. Para obtener más información sobre cómo obtener este paquete de actualización acumulativa para SQL Server 2008 R2, consulte el siguiente artículo en Microsoft Knowledge Base:

2633145 Paquete de actualización acumulativa 11 para SQL Server 2008 R2

Nota Como las compilaciones son acumulativas, cada nueva versión de corrección contiene todas las revisiones y todas las revisiones de seguridad incluidas en la versión anterior de corrección de SQL Server 2008 R2. Le recomendamos que considere la posibilidad de aplicar la versión de corrección más reciente que contenga este Hotfix. Para obtener más información, consulte el artículo siguiente de Microsoft Knowledge Base:

981356 Las compilaciones de SQL Server 2008 R2 que se lanzaron después de publicar SQL Server 2008 R2

Paquete de actualización acumulativa 4 para SQL Server 2008 R2 SP1

La corrección para este problema se publicó por primera vez en la actualización acumulativa 4. Para obtener más información sobre cómo obtener este paquete de actualización acumulativa para SQL Server 2008 R2 SP1, consulte el siguiente artículo en Microsoft Knowledge Base:

2633146 Paquete de actualización acumulativa 4 para SQL Server 2008 R2 SP1

Nota: Como las compilaciones son acumulativas, cada nueva versión de corrección contiene todas las revisiones y todas las revisiones de seguridad incluidas en la versión anterior de corrección de SQL Server 2008 R2 SP1. Le recomendamos que considere la posibilidad de aplicar la versión de corrección más reciente que contenga este Hotfix. Para obtener más información, consulte el artículo siguiente de Microsoft Knowledge Base:

2567616 Las compilaciones de SQL Server 2008 R2 que se publicaron después de que se publicó SQL Server 2008 R2 SP1

SQL Server 2012

SQL Server 2012 contiene los cambios de código para estas correcciones. Tanto la marca de seguimiento 2562 como la 2549 como se describe a continuación también se aplican a SQL Server 2012. Sin embargo, la corrección para reducir la contención en el bloqueo de DBCC_MULTIOBJECT_SCANNER no requiere la marca de seguimiento 2562 en SQL Server 2012. Esos cambios se incluyeron de forma predeterminada en SQL Server 2012.

Más información


Esta actualización acumulativa presenta dos indicadores de traza para maximizar mejor el uso de recursos de e/s de disco cuando un usuario ejecuta el comando DBCC CHECKDB . Aunque estas mejoras se dirigen solo a la opción PHYSICAL_ONLY  , también pueden mejorar el rendimiento general de los comandos DBCC CHECKDB que no usan la opción PHYSICAL_ONLY .Indicador de traza 2562Esta marca de seguimiento incluye los siguientes cambios: 
  • Ejecute el comando DBCC CHECKDB en un único "lote" independientemente del número de índices de la base de datos. De forma predeterminada, el comando DBCC CHECKDB intenta minimizar los recursos de tempdb limitando el número de índices o "hechos" que genera mediante el concepto "lotes". Esta marca de seguimiento fuerza todo procesamiento a un lote.
  • Mejorar el procesamiento interno para determinar las páginas que se van a leer de la base de datos. Esto reduce la contención en el pestillo de DBCC_MULTIOBJECT_SCANNER.
Un efecto de usar esta marca de seguimiento es que pueden aumentar los requisitos de espacio para tempdb  . Tempdb  puede aumentar hasta un 5 por ciento o más de la base de datos de usuario que está procesando el comando DBCC CHECKDB . Por lo tanto, le recomendamos que cambie el tamaño de tempdb  al menos al 5 por ciento del tamaño de la base de datos cuando use esta marca de seguimiento para evitar el crecimiento automático, lo que puede ralentizar el rendimiento del comando DBCC CHECKDB .Nota La marca de seguimiento 2562 es una marca de seguimiento en el nivel de sesión. Puede habilitarlo en el nivel de la sesión.Indicador de traza 2549El comando DBCC CHECKDB genera una lista interna de páginas para leer por cada unidad de disco única en todos los archivos de base de datos. Esta lógica determina las unidades de disco únicas en función de la letra de unidad del nombre de archivo físico de cada archivo. Si los discos subyacentes son realmente únicos cuando las letras de unidad o no, el comando DBCC CHECKDB los tratará como un disco. Cuando esta marca de seguimiento está habilitada, se supone que cada archivo de base de datos está en una unidad de disco exclusiva. No use esta marca de seguimiento a menos que sepa que cada archivo se basa en un disco físico único.Nota La marca de seguimiento 2549 es una marca de seguimiento global. Para habilitarlo, debe usarlo como parámetro de inicio o DBCC TRACEON (2549,-1).Aunque estas marcas de seguimiento mejoran el rendimiento de los comandos de DBCC CHECKDB , que tienen como objetivo el uso de la opción DBCC CHECKDB  , es posible que algunos usuarios no vean ninguna mejora en el rendimiento. Aunque estas marcas de seguimiento mejoran el uso de recursos de e/s de disco, el rendimiento subyacente de los recursos de disco puede limitar el rendimiento general del comando DBCC CHECKDB .Tenga en cuenta las siguientes restricciones:
  • Las mejoras de rendimiento no están diseñadas para mejorar el rendimiento al usar la opción de reparación. Por ejemplo, las mejoras de rendimiento no están diseñadas para mejorar el rendimiento al usar la opción REPAIR_ALLOW_DATA_LOSS.
  • Las mejoras no afectan al comando DBCC CHECKALLOC.
  • Las mejoras pueden ayudar al rendimiento del comando DBCC CHECKTABLEpara índices con muchas páginas. Sin embargo, las mejoras no se destinan a mejorar el rendimiento del comando DBCC CHECKTABLE .

Estado


Microsoft ha confirmado que se trata de un problema de los productos de Microsoft recogidos en la sección "Se aplica a".