see script query los how evitar deadlocks como sql-server sql-server-2008 deadlock database-deadlocks

sql server - script - ¿Qué significa "bloqueo | recursos de búfer de comunicación "significa?



sql server deadlock script (2)

Tengo un registro de errores que informa de un interbloqueo:

La transacción (Id. De proceso 55) estaba bloqueada en el bloqueo | recursos de búfer de comunicación con otro proceso y ha sido elegido como la víctima del interbloqueo. Ejecute la transacción nuevamente.

Estoy intentando reproducir este error, pero mi código SQL estándar de interbloqueo produce un error diferente :

La transacción (Id. Del proceso 54) se bloqueó en los recursos de bloqueo con otro proceso y se eligió como la víctima del punto muerto. Ejecute la transacción nuevamente.

Quiero dejar muy claro que no estoy preguntando qué es un punto muerto . Entiendo lo básico.

Mi pregunta es: ¿cuál es el significado de lock | communication buffer resources lock | communication buffer resources en este contexto? ¿Qué son los "recursos de búfer de comunicación"? ¿El lock | significar algo?

Mi mejor estimación es que se utiliza un búfer de comunicación cuando los hilos paralelos combinan sus resultados. ¿Alguien puede confirmar o negar esto?

Mi objetivo final es provocar de alguna manera que el primer error vuelva a ocurrir.


Puede usar MAXDOP 1 como una sugerencia de consulta, es decir, ejecutar esa consulta en una CPU, sin afectar al resto del servidor.

Esto evitará el error de esa consulta; no le dice por qué está fallando, pero sí proporciona una solución alternativa si tiene que hacerlo funcionar rápidamente :-)


Su problema está relacionado con el paralelismo, y el error no tiene "significado", ya que el mensaje de error no refleja su problema y no debe cambiar la configuración de maxdope. Para llegar a la causa del error que necesita para usar el indicador de seguimiento 1204 , consulte cómo usar el indicador de seguimiento y qué información obtiene .

Cuando haga esto, obtendrá la respuesta de por qué, dónde y qué línea de código causó el bloqueo. Supongo que puedes buscarte en Google desde ese punto, y si no, publícalo y obtendrás la respuesta que necesitas.