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.

Síntomas

Imagine la siguiente situación:

  • Las filas se insertan en una tabla de Microsoft SQL Server 2008 o en SQL Server 2008 R2 mediante una de las siguientes consultas:

    • INSERT INTO <target_table> SELECT * FROM <target_table> WHERE <predicate>
    • SELECT * INTO <target_table> FROM <source_table> WHERE <predicate>

    Notas

    • El <target_table> marcador de posición representa el nombre real de la tabla de destino.

    • El predicado de<> marcador de posición representa el predicado real.

    • El <source_table> marcador de posición representa la tabla de origen real.

  • Se superó el umbral de escalado de bloqueo de la tabla.

En este escenario, el motor de base de datos no escala los bloqueos de la tabla.

Causa

Este problema se produce porque SQL Server no cuenta internamente todos los bloqueos nuevos generados por las operaciones de inserción. Por lo tanto, es posible que el umbral de escalado de bloqueo no se desencadene cuando sea necesario.

Resolución

Información de Service Pack para SQL Server 2008

Para resolver este problema, obtenga el Service Pack más reciente para SQL Server 2008. para obtener más información, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:

968382 Cómo obtener el Service Pack más reciente para SQL Server 2008

Información de Service Pack para SQL Server 2008 R2

Para resolver este problema, obtenga el Service Pack más reciente para SQL Server 2008 R2. Para obtener más información, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:

2527041Cómo obtener el Service Pack más reciente para SQL Server 2008 R2

Estado

Microsoft ha confirmado que se trata de un problema de los productos de Microsoft recogidos en la sección "Se aplica a".Este problema se corrigió por primera vez en SQL Server 2008 Service Pack 2 para SQL Server 2008. este problema se corrigió por primera vez en SQL Server 2008 R2 Service Pack 1 para SQL Server 2008 R2.

Más información

Para obtener más información acerca de la extensión de bloqueo, visite el siguiente sitio web de Microsoft TechNet:

Información general acerca de la extensión de bloqueoPara determinar si se escalan los bloqueos de una tabla, ejecute las siguientes instrucciones Transact-SQL:

USE tempdbGOCREATE TABLE x (i INT NOT NULL PRIMARY KEY)GOBEGIN TRANINSERT xSELECT TOP (40000)ROW_NUMBER() OVER (ORDER BY (SELECT NULL)) AS rFROM master..spt_values a, master..spt_values bORDER BYrSELECTCOUNT(*)FROM sys.dm_tran_locksWHERE request_session_id = @@SPID ROLLBACKGODROP TABLE x 

Si se escalan los bloqueos de la tabla, la última instrucción SELECT devuelve un valor de 1 o 2. Si no se escalan los bloqueos de la tabla, la última instrucción SELECT devuelve un valor de 40.066 o 40.067.

¿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!

×