Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Защо SET DEADLOCK_PRIORITY HIGH на SQL Server не се спазва?

Изглежда, че командата, която се унищожава, е ALTER PARTITION FUNCTION, интересно е да се отбележи, че това изисква заключване SCH-M, което е несъвместимо с заключванията SCH-S, които се приемат за всичко. Предполагам, че това може да е причина.

Вижте michaeljswart.com/2013/04/the-sch -m-lock-is-evil .

Вижте също това описание на блокиране на SCH-M от функция ALTER PARTITION и заявка, която причинява актуализация на статистиката в SQL 2014 и 2016, но може би е вярно и през 2012 г.:Deadlock Възниква, когато придобиете брава SCH-M

Гледайки вашата графика, един процес има споделено (актуализирано) заключване на sysschobjs и чака SCH-S заключване на вашата маса. Вашият процес има SCH-M заключване на вашата маса и чака X заключване на sysschobjs. sysschobjs е системна базова таблица, която стои зад sysobjects. Вижте дискусията тук Technet:SQL заявка, която често причинява блокиране

Надявам се това да помогне




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Напълно квалифицирани имена на таблици със SP_ExecuteSql за достъп до отдалечен сървър

  2. Изберете/Вмъкнете версия на Upsert:има ли модел на проектиране за висок едновременност?

  3. Отстраняване на проблеми с репликацията на SQL сървър

  4. Как да разположа SQL Server Compact Edition 4.0?

  5. SQL актуализация, където в набор от данни