KB2803065: corrección de memoria cuando se ejecutan consultas en una tabla temporal en un procedimiento almacenado anidado en SQL Server 2012

Síntomas

Imagine la siguiente situación:

  • Tiene un procedimiento almacenado que contiene un procedimiento almacenado secundario en Microsoft SQL Server 2012.

  • El procedimiento almacenado secundario usa una tabla como parámetro.

  • Cree una tabla temporal y, a continuación, pásela al procedimiento almacenado secundario como parámetro.

  • El procedimiento almacenado secundario ejecuta algunas consultas en la tabla temporal mediante cursores.

En este caso, se produce una pérdida de memoria que degrada el rendimiento de SQL Server 2012.

Resolución

Información sobre la actualización acumulativa

Actualización acumulativa 3 para SQL Server 2012 Service Pack 1 (SP1)

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

2812412 Paquete de actualización acumulativa 3 para SQL Server 2012 Service Pack 1Nota 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 2012 SP 1. Le recomendamos que considere la posibilidad de aplicar la versión de corrección más reciente que contenga este Hotfix. Si desea obtener más información, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:

2772858 Las compilaciones de SQL Server 2012 que se lanzaron después de publicar SQL Server 2012 Service Pack 1

Estado

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

Más información

En la tabla siguiente se proporciona más información sobre los productos o herramientas que comprueban automáticamente la condición que se describe en la sección "síntomas" de la instancia de SQL Server y en las versiones de SQL Server con las que se evalúa la regla:

Software de regla

Título de regla

Descripción de regla

Versiones de producto para las que se ha evaluado la regla

System Center Advisor

Pérdida de memoria de SQL Server cuando se ejecutan consultas contra una tabla temporal en un procedimiento almacenado anidado en SQL Server 2012

En este Asesor de instancias de SQL Server detectó la presencia de una compilación de SQL Server inferior a la compilación fija para un problema de pérdida de memoria. Esto puede ocurrir si tiene un procedimiento almacenado que contiene un procedimiento almacenado secundario, que usa tablas temporales que usan más cursores. Es posible que advierta MEMORYCLERK_SQLOPTIMIZER de sys.dm_os_memory_clerks y MEMOBJ_EXECCOMPILETEMP de sys.dm_os_memory_objects en un nivel muy alto. Para obtener más información, consulta el artículo de KB.

SQL Server 2012

¿Necesita más ayuda?

Ampliar sus conocimientos
Explorar los cursos
Obtener nuevas características primero
Unirse a Microsoft Insider

¿Le ha sido útil esta información?

¡Gracias por sus comentarios!

Gracias por sus comentarios. Quizá le interese ponerse en contacto con uno de nuestros agentes de soporte de Office.

×