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

¿Por qué no se respetaría SET DEADLOCK_PRIORITY HIGH de SQL Server?

Parece que el comando que se está eliminando es una FUNCIÓN DE ALTERACIÓN DE PARTICIÓN, es interesante notar que esto requiere un bloqueo SCH-M que es incompatible con los bloqueos SCH-S que se toman para todo. Supongo que esto puede ser una causa.

Consulte michaeljswart.com/2013/04/the-sch -m-lock-is-mal .

Consulte también esta descripción de un interbloqueo SCH-M de una función ALTER PARTITION y una consulta que provoca una actualización de estadísticas en SQL 2014 y 2016, pero también puede ser cierto en 2012:Deadlock Ocurre cuando adquiere una cerradura SCH-M

Mirando su gráfico, un proceso tiene un bloqueo compartido (actualización) en sysschobjs y está esperando un bloqueo SCH-S en su mesa. Su proceso tiene un bloqueo SCH-M en su mesa y está esperando un bloqueo X en sysschobjs. sysschobjs es una tabla base del sistema que se encuentra detrás de sysobjects. Vea la discusión aquí Technet:consulta SQL que provoca interbloqueos a menudo

Espero que esto ayude