sql >> Base de Datos >  >> RDS >> Sqlserver

¿Qué bloquea | ¿Qué significan los recursos de búfer de comunicación?

Interpretaría el mensaje como un punto muerto en alguna combinación de recursos de bloqueo o recursos de búfer de comunicación. Los "recursos de bloqueo" son bloqueos de objetos comunes y los "recursos de memoria intermedia de comunicación" son eventos de intercambio que se utilizan para combinar resultados de consultas paralelas. Estos se describen con más detalle en https://blogs.msdn.microsoft.com/bartd/2008/09/24/todays-annoyingly-inmanejable-term-intra-query-parallel-thread-deadlocks/ donde el párrafo relevante es:

El gráfico de punto muerto para uno de estos que he visto incluía un conjunto de procesos con solo un SPID y un gráfico de bloqueos de objetos y eventos de intercambio. Supongo que el mensaje "La transacción (Proceso ID 55) se interbloqueó en el bloqueo | los recursos del búfer de comunicación con otro proceso y se eligió como víctima del interbloqueo. Vuelva a ejecutar la transacción" aparece en lugar de "El paralelismo intraconsulta provocó que el comando del servidor (ID de proceso n.º 51) se bloqueara. Vuelva a ejecutar la consulta sin el paralelismo intraconsulta utilizando la opción de sugerencia de consulta (maxdop 1)" debido a la combinación de bloqueos de objetos y eventos de intercambio, o bien el mensaje ha cambiado en SQL Server desde que se escribió el artículo.