Iniciar sesión con Microsoft
Iniciar sesión o crear una cuenta
Hola:
Seleccione una cuenta diferente.
Tiene varias cuentas
Elija la cuenta con la que desea iniciar sesión.

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

Síntomas

Imagine la siguiente situación:

  • Instala una instancia de Microsoft SQL Server 2008 R2 o Microsoft SQL Server 2012 en un equipo.

  • En la instancia se ejecutan instrucciones de forma simultánea similares a las siguientes:

    CREATE PROC p AS RETURN (
    query
    ); EXEC p;

    O bien, ejecute una consulta que contenga el código siguiente:

    IF EXISTS(
    subquery
    );
  • El uso de CPU es alto constantemente y los subprocesos de trabajo están en el estado ejecutable.

  • La contención de la QUERY_EXEC_STATS Spinlock es alta. Por ejemplo, el recuento circular, las posibles colisiones y los valores de reserva para el QUERY_EXEC_STATS Spinlock aumentan rápidamente.Nota Para obtener más información sobre cómo supervisar el QUERY_EXEC_STATS Spinlock, consulte la sección "más información".

En este escenario, puede producirse un bajo nivel de rendimiento.

Causa

Este problema se debe a que SQL Server 2008 R2 o SQL Server 2012 crea y destruye algunas estructuras de memoria acerca de las estadísticas globales en lugar de almacenarlos en caché. Esto provoca un cuello de botella de rendimiento.

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 actualización acumulativa, 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 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. Microsoft recomienda 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:

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

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

La corrección para este problema se publicó por primera vez en la actualización acumulativa 5. Para obtener más información sobre 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 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. Si desea obtener más información, haga clic en el número de artículo siguiente para verlo en 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

Más información

Para supervisar el QUERY_EXEC_STATS Spinlock, ajuste el retardo y el número de iteraciones correspondientes a su entorno en el código siguiente y, a continuación, ejecútelo:

SET NOCOUNT ONCREATE TABLE #spins([Spinlock Name] varchar(50),Collisions numeric,Spins numeric,[Spins/Collision] float,[Sleep Time (ms)] numeric,Backoffs numeric, InsertTime datetime DEFAULT GETDATE())DECLARE @counter int = 1WHILE @counter < 10      BEGIN            INSERT INTO #spins ([Spinlock Name], Collisions, Spins, [Spins/Collision], [Sleep Time (ms)], Backoffs) EXECUTE ('DBCC SQLPERF (''SPINLOCKSTATS'') WITH NO_INFOMSGS')            WAITFOR DELAY '00:00:05'            SET @counter +=1      ENDSELECT * FROM #spins WHERE [Spinlock Name] = 'QUERY_EXEC_STATS' ORDER BY InsertTimeDROP TABLE #spins

Estado

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

¿Necesita más ayuda?

¿Quiere más opciones?

Explore las ventajas de las suscripciones, examine los cursos de aprendizaje, aprenda a proteger su dispositivo y mucho más.

Las comunidades le ayudan a formular y responder preguntas, enviar comentarios y leer a expertos con conocimientos extensos.

¿Le ha sido útil esta información?

¿Cuál es tu grado de satisfacción con la calidad del lenguaje?
¿Qué ha afectado a su experiencia?
Si presiona Enviar, sus comentarios se usarán para mejorar los productos y servicios de Microsoft. El administrador de TI podrá recopilar estos datos. Declaración de privacidad.

¡Gracias por sus comentarios!

×