KB2649913 CORRECCIÓN: El rendimiento puede disminuir al ejecutar una consulta que usa el procedimiento almacenado sp_cursoropen después de actualizar de SQL Server 2005 a SQL Server 2008 o a SQL Server 2008 R2 o a SQL Server 2012

Se aplica a
SQL Server 2008 R2 Datacenter SQL Server 2008 R2 Developer SQL Server 2008 R2 Enterprise SQL Server 2008 R2 Express SQL Server 2008 R2 Express with Advanced Services SQL Server 2008 R2 Standard SQL Server 2008 R2 Standard Edition for Small Business SQL Server 2008 R2 Workgroup SQL Server 2008 Developer SQL Server 2008 Enterprise SQL Server 2008 Express SQL Server 2008 Express with Advanced Services SQL Server 2012 Developer SQL Server 2012 Enterprise SQL Server 2012 Express SQL Server 2012 Standard

Microsoft distribuye las correcciones de Microsoft SQL Server 2008 R2 Service Pack 1 (SP1) o Microsoft SQL Server 2012 en un archivo descargable. Dado que las correcciones son acumulativas, cada nueva versión contiene todas las revisiones y actualizaciones de seguridad que se incluyeron con la versión anterior de actualización de SQL Server 2008 R2 Service Pack 1 (SP1) o Microsoft SQL Server 2012.

Síntomas

Tenga en cuenta el siguiente escenario:

  • Actualiza de Microsoft SQL Server 2005 a Microsoft SQL Server 2008 o a Microsoft SQL Server 2008 R2 o a Microsoft SQL Server 2012.
  • Ejecuta una consulta que utiliza el sp_cursoropen procedimiento almacenado y, a continuación, especifica el parámetro rowcount para capturar las primeras filas de una tabla.

En este escenario, el rendimiento puede ser más lento que si ejecuta la misma consulta en SQL Server 2005.

Causa

Este problema se produce porque el optimizador de consultas usa un plan de cursor estático en lugar de un plan de cursor dinámico. Para un plan de cursor estático, SQL Server captura todas las filas y las inserta en la tabla de trabajo de cursores. Pero para un plan de cursor dinámico, SQL Server captura solo las filas que son necesarias.

Resolución

Información sobre la actualización acumulativa

SQL Server 2012

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

2679368 paquete de actualización acumulativa 1 para SQL Server 2012Nota: Dado que las compilaciones son acumulativas, cada nueva versión de corrección contiene todas las revisiones y correcciones de seguridad que se incluyeron con la versión de corrección anterior de SQL Server 2012. Microsoft recomienda que se plantee la posibilidad de aplicar la versión de corrección más reciente que contenga esta revisión. Para obtener más información, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:

2692828 Compilaciones de SQL Server 2012 que se publicaron después de SQL Server de 2012 Debe aplicar una revisión de SQL Server 2012 a una instalación de SQL Server 2012.

5º paquete de actualización acumulativa para SQL Server 2008 R2 SP1

Después de aplicar esta revisión, habilite la marca de seguimiento 4199.

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

2659694 paquete de actualización acumulativa 5 para SQL Server 2008 R2 SP1Nota: Dado que las compilaciones son acumulativas, cada nueva corrección contiene todas las revisiones y correcciones de seguridad que se incluyeron con la versión de corrección anterior de SQL Server 2008 R2 SP1. Recomendamos que se plantee la posibilidad de aplicar la versión de corrección más reciente que contiene esta revisión. Para obtener más información, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:

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

Solución alternativa

Para solucionar este problema, agregue la sugerencia de consulta FAST a la consulta.

Más información

Para obtener más información acerca de cómo usar las sugerencias de consulta, visite el siguiente sitio web de MSDN:

Información general acerca de cómo usar las sugerencias de consulta Para obtener más información sobre la marca de seguimiento 4199, visite el siguiente sitio web:

Información general sobre la marca de seguimiento 4199

Estado

Microsoft ha confirmado que se trata de un problema de los productos de Microsoft que se enumeran en la sección "Aplicable a".