REVISIÓN: cuando ejecuta una consulta que utiliza la sugerencia de tabla NOLOCK en SQL Server 2005 o en SQL Server 2008 para recuperar datos BLOB, la consulta ejecuta muy lentamente

Seleccione idioma Seleccione idioma
Id. de artículo: 961049 - Ver los productos a los que se aplica este artículo
Microsoft distribuye correcciones de Microsoft SQL Server 2005 como un archivo descargable. Como las revisiones son acumulativas, cada versión nueva contiene todas las revisiones y revisión de todas las revisiones de seguridad incluidas en el anterior de SQL Server 2005.
Microsoft distribuye correcciones de Microsoft SQL Server 2008 como un archivo descargable. Como las revisiones son acumulativas, cada versión nueva contiene todas las revisiones y revisión de todas las revisiones de seguridad incluidas con la anterior de SQL Server 2008.
Expandir todo | Contraer todo

En esta página

Síntomas

Tiene una consulta que utiliza la sugerencia de tabla NOLOCK en Microsoft SQL Server 2005 o en Microsoft SQL Server 2008. La consulta lee datos de objeto binario grande (BLOB) de uno de los siguientes tipos de datos de una tabla grande:
  • El tipo de datos de texto
  • El tipo de datos nText
  • El tipo de datos de imagen
Cuando ejecuta la consulta, la consulta se ejecuta muy lentamente. Si examina la actividad de disco que genera la consulta, observará que el número de lecturas lógicas es muy alto.

Nota Para mostrar las actividades de disco, ejecutar la consulta mediante la cláusula SET STATISTICS IO ON.

Causa

Cuando la consulta que utiliza la sugerencia de tabla NOLOCK lee datos BLOB, SQL Server comprueba que se asigna cada página BLOB examinando el mapa de asignación de índice (IAM) correspondiente. El IAM es una lista vinculada de asignación de páginas. Cada página IAM puede contener aproximadamente 4 GB de datos (tamaño de página de 8 KB * 8 páginas * 64.000 extensiones). Si el objeto es grande, la operación de comprobación puede conducir a excesiva lecturas lógicas.

Por ejemplo, tener un gran objeto asignado a un grupo de archivos. El tamaño total de archivos en el grupo de archivos es de 700 GB. En esta situación, la IAM para este objeto puede contener hasta 175 páginas. Si ahora ejecuta una consulta en este objeto utilizando la sugerencia de tabla NOLOCK y la consulta tiene acceso a 10.000 páginas BLOB, el número de lecturas lógicas relacionados con las páginas IAM será 175 * 10.000 = 1,750,000 en el peor caso. Si SQL Server se encuentra la página IAM correspondiente recorriendo la mitad de la lista vinculada, el promedio de lecturas lógicas relacionados con las páginas IAM será aproximadamente 1,750,000 / 2 = 875,000. Esto es demasiado alta una sobrecarga a incurrir en una consulta tener acceso a 10.000 páginas BLOB.

Solución

Información de actualización acumulativa para SQL Server 2005

La corrección para este problema se publicó por primera vez en actualización acumulativa 3 para SQL Server 2005 Service Pack 3. Para obtener más información acerca de cómo obtener este paquete de actualización acumulativa para SQL Server 2005, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
967909Paquete de actualización acumulativa 3 para SQL Server 2005 Service Pack 3
Nota Como las compilaciones son acumulativas, cada versión de revisión nueva contiene todas las revisiones y revisión de todas las revisiones de seguridad incluidas en el anterior de SQL Server 2005. Recomendamos que considere aplicar la versión de revisión más reciente que contenga este hotfix. Para obtener más información, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
960598Compilaciones de SQL Server 2005 que se publicaron después del lanzamiento de SQL Server 2005 Service Pack 3

Información de actualización acumulativa para SQL Server 2008

La corrección para este problema se publicó por primera vez en 5 actualización acumulativa de SQL Server 2008. Para obtener más información acerca de cómo obtener este paquete de actualización acumulativa para SQL Server 2008, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
969531Paquete de actualización acumulativa 5 de SQL Server 2008
Nota Como las compilaciones son acumulativas, cada versión de revisión nueva contiene todas las revisiones y revisión de todas las revisiones de seguridad incluidas con la anterior de SQL Server 2008. Recomendamos que considere aplicar la versión de revisión más reciente que contenga este hotfix. Para obtener más información, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
956909SQL Server 2008 generaciones que se publicaron después del lanzamiento de SQL Server 2008

Estado

Microsoft ha confirmado que se trata de un problema de los productos de Microsoft enumerados en la sección "La información de este artículo se refiere a:".

Más información

La corrección para este problema, utiliza la caché IAM para determinar rápidamente si realmente se asigna una página BLOB.

Para obtener más información acerca de qué archivos se ha cambiado y para información acerca de los requisitos previos para aplicar el paquete de actualización acumulativa que contiene la revisión que se describe en este artículo, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
967909Paquete de actualización acumulativa 3 para SQL Server 2005 Service Pack 3
Para obtener más información acerca de qué archivos se ha cambiado y para información acerca de los requisitos previos para aplicar el paquete de actualización acumulativa que contiene la revisión que se describe en este artículo, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
969531Paquete de actualización acumulativa 5 de SQL Server 2008

Referencias

Para obtener más información acerca de la lista de generaciones que están disponibles después de SQL Server 2005 Service Pack 3, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
960598Compilaciones de SQL Server 2005 que se publicaron después del lanzamiento de SQL Server 2005 Service Pack 3
Para obtener más información acerca de la lista de generaciones que están disponibles después de SQL Server 2008, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
956909SQL Server 2008 generaciones que se publicaron después del lanzamiento de SQL Server 2008
Para obtener más información acerca del modelo incremental de servicio para SQL Server, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
935897Un modelo incremental de servicio está disponible desde el equipo de SQL Server para entregar revisiones para problemas detectados
Para obtener más información sobre el esquema de nomenclatura para las actualizaciones de SQL Server, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
822499Nuevo esquema de nomenclatura para los paquetes de actualización del software de Microsoft SQL Server
Para obtener más información acerca de la terminología relativa de la actualización de software, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
824684Descripción de la terminología estándar utilizada para describir las actualizaciones de software de Microsoft

Propiedades

Id. de artículo: 961049 - Última revisión: lunes, 18 de mayo de 2009 - Versión: 3.0
La información de este artículo se refiere a:
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL Server 2005 Enterprise Edition
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Standard X64 Edition
  • Microsoft SQL Server 2005 Enterprise X64 Edition
  • Microsoft SQL Server 2005 Enterprise Edition for Itanium Based Systems
  • Microsoft SQL Server 2005 Standard Edition for Itanium Based Systems
  • Microsoft SQL Server 2005 Workgroup Edition
  • Microsoft SQL Server 2008 Developer
  • Microsoft SQL Server 2008 Enterprise
  • Microsoft SQL Server 2008 Standard
  • Microsoft SQL Server 2008 Web
  • Microsoft SQL Server 2008 Workgroup
Palabras clave: 
kbmt kbsurveynew kbhotfixrollup kbfix kbqfe kbexpertiseadvanced KB961049 KbMtes
Traducción automática
IMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano. Microsoft le ofrece artículos traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos los artículos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un extranjero podría cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisión, error o daño ocasionado por una mala traducción del contenido o como consecuencia de su utilización por nuestros clientes. Microsoft suele actualizar el software de traducción frecuentemente.
Haga clic aquí para ver el artículo original (en inglés): 961049

Enviar comentarios

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com