sql >> Databáze >  >> RDS >> Sqlserver

Proč by SQL Server SET DEADLOCK_PRIORITY HIGH nebyl dodržen?

Vypadá to, že příkaz, který je zabíjen, je FUNKCE ALTER PARTITION, je zajímavé poznamenat, že to vyžaduje zámek SCH-M, který je nekompatibilní se zámky SCH-S, které se berou na všechno. Myslím, že to může být příčina.

Viz michaeljswart.com/2013/04/the-sch -m-lock-is-evil .

Podívejte se také na tento popis uváznutí SCH-M z funkce ALTER PARTITION a dotazu, který způsobuje aktualizaci statistik v SQL 2014 a 2016, ale možná pravdivý i v roce 2012:Zablokování nastane, když získáte zámek SCH-M

Když se podíváte na váš graf, jeden proces má sdílený (aktualizační) zámek na sysschobjs a čeká na zámek SCH-S na vašem stole. Váš proces má na vašem stole zámek SCH-M a čeká na zámek X na sysschobjs. sysschobjs je systémová základní tabulka, která sedí za sysobjects. Podívejte se na diskuzi zde Technet:SQL dotaz, který často způsobuje uváznutí

Doufám, že to pomůže




  1. PGSQL není načteno v PHP 5.3 Windows pod IIS

  2. Rozdíl mezi BYTE a CHAR v datových typech sloupců

  3. sql:vyberte položky s nejvyšším počtem hlasů od každého uživatele

  4. Připojení Pythonu k databázi MySQL pomocí konektoru MySQL a příkladu PyMySQL