2010-11-18 823 views
8

Al ejecutar sp_who2, parece que uno de mis comandos SQL está bloqueando, pero esperando en un proceso que está "Durmiendo" y "En espera de comando". Esto no tiene ningún sentido.sp_who2 Proceso espera de BlkBy comando

alt text

Alguna idea de lo que podría estar causando esto? Sé que el DELETE se ejecuta dentro de una transacción que previamente insertó muchas filas en la tabla, ¿podría ser ese el problema?

Respuesta

11

es probable que haya una transacción abierta en SPID 98. Un SPID de bloqueo no tiene que estar activo

probar esto, un vistazo a la columna de la open_tran

SELECT 
    p1.SPID AS blockedSPID, p2.SPID AS blockingSPID, ... 
FROM 
    master..sysprocesses p1 
    JOIN 
    master..sysprocesses p2 ON p1.blocked = p2.spid 

Siguiendo adelante, le this script gives transacciones abiertas, último SQL y plan.

y tienen una lectura de KB 224453 una buena medida

+1

Esto era un problema con SSRS que no reutilizaba la conexión con la que abrí la transacción (nunca cerrándola), lo que finalmente significaba que había una transacción abierta presionando un candado sobre la mesa. ¡Gracias por la ayuda! –

0

Sin conocer los LSQ que se están ejecutando sería extremadamente difícil de decir. Pero basado en el escenario Eliminar/Insertar, ¿no es posible que hayas iniciado una transacción para insertar y luego hayas abierto otra transacción para eliminar algunos de esos registros insertados sin modificar la transacción anterior?

He visto este tipo de problema antes y así es como se manifiesta.

Cuestiones relacionadas