Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Que signifie verrou | moyens de mémoire tampon de communication ?

J'interpréterais le message comme un blocage sur une combinaison de ressources de verrouillage ou de ressources de tampon de communication. Les "ressources de verrouillage" sont des verrous d'objet ordinaires et les "ressources de tampon de communication" sont des événements d'échange utilisés pour combiner les résultats de requêtes parallèles. Ceux-ci sont décrits plus en détail dans https://blogs.msdn.microsoft.com/bartd/2008/09/24/todays-annoyingly-unwieldy-term-intra-query-parallel-thread-deadlocks/ où le paragraphe pertinent est :

Le graphique de blocage pour l'un d'entre eux que j'ai vu comprenait un ensemble de processus avec un seul SPID et un graphique de verrous d'objets et d'échanges d'événements. Je suppose que le message "La transaction (Process ID 55) était bloquée sur le verrou | les ressources du tampon de communication avec un autre processus et a été choisie comme victime du blocage. Réexécutez la transaction" apparaît à la place de "Le parallélisme intra-requête a provoqué le blocage de votre commande serveur (ID de processus #51). Réexécutez la requête sans parallélisme intra-requête en utilisant l'option d'indication de requête (maxdop 1)" en raison de la combinaison de verrous d'objet et d'événements d'échange, ou bien le message a été modifié dans SQL Server depuis la rédaction de l'article.