Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Was bedeutet lock | Kommunikationspuffer-Ressourcen bedeuten?

Ich würde die Nachricht als Deadlock auf einer Kombination von Lock-Ressourcen oder Kommunikationspuffer-Ressourcen interpretieren. "Sperrressourcen" sind gewöhnliche Objektsperren, und "Kommunikationspufferressourcen" sind Austauschereignisse, die zum Kombinieren von Ergebnissen paralleler Abfragen verwendet werden. Diese werden in https://blogs.msdn.microsoft.com/bartd/2008/09/24/todays-annoyingly-unwieldy-term-intra-query-parallel-thread-deadlocks/ wobei der relevante Absatz lautet:

Das Deadlock-Diagramm für eines davon, das ich gesehen habe, enthielt eine Reihe von Prozessen mit nur einer SPID und ein Diagramm von Objektsperren und Austauschereignissen. Ich vermute, dass die Meldung "Transaktion (Prozess-ID 55) war bei Sperre | Kommunikationspufferressourcen mit einem anderen Prozess blockiert und wurde als Deadlock-Opfer ausgewählt. Führen Sie die Transaktion erneut aus" erscheint anstelle von "Abfrageinterne Parallelität verursachte einen Deadlock Ihres Serverbefehls (Prozess-ID #51). Führen Sie die Abfrage ohne Abfrageinterne Parallelität erneut aus, indem Sie die Abfragehinweisoption (maxdop 1) verwenden" aufgrund der Kombination von Objektsperren und Austauschereignissen, oder die Nachricht wurde in SQL Server geändert, seit der Artikel geschrieben wurde.