Sdílet prostřednictvím


MSSQLSERVER_1205

platí pro:SQL ServerAzure SQL Databaseazure SQL Managed Instance

Podrobnosti

Atribut Hodnota
Název produktu SQL Server
ID události 1205
Zdroj událostí MSSQLSERVER
Komponenta SQLEngine
Symbolický název LK_VICTIM
Text zprávy Transakce (ID procesu %d) byla u %prostředků .*ls s jiným procesem zablokovaná a byla vybrána jako oběť vzájemného zablokování. Znovu spusťte transakci.

Vysvětlení

Prostředky jsou přístupné v konfliktních pořadí u samostatných transakcí, což způsobuje vzájemné zablokování. Například:

  • Transaction1 aktualizace Table1.Row1, zatímco aktualizace Transaction2 Table2.Row2
  • Transaction1 se pokusí aktualizovat Table2.Row2, ale je zablokovaný, protože Transaction2 zatím nebyly potvrzeny a neuvolnily jeho zámky.
  • Transaction2 se teď pokouší aktualizovat Table1.Row1, ale je blokovaný, protože Transaction1 nebyl potvrzen a nevyvolal jeho zámky.
  • K zablokování dochází, protože Transaction1 čeká na dokončení Transaction2, ale Transaction2 čeká na dokončení Transaction1.

Systém zjistí toto zablokování a zvolí jednu z transakcí, které jsou součástí oběti. Potom tuto chybovou zprávu vydá a vrátí zpět transakci oběti. Podrobné informace naleznete v tématu zablokování.

Akce uživatele

Zablokování jsou ve většině případů problémy související s aplikací a vyžadují, aby vývojáři aplikací udělali změny kódu. Jedním z přístupů při zobrazení chyby 1205 je opětovné spuštění dotazů. Další informace najdete v tématu aplikace simulátoru vzájemného zablokování pro vývojáře: Jak zpracovat problém se vzájemným zablokováním SQL v aplikaci.

Aplikaci můžete také upravit, abyste se vyhnuli zablokování. Transakce zvolená jako oběť se může opakovat a pravděpodobně proběhne úspěšně v závislosti na tom, jaké operace se provádějí současně.

Chcete-li zabránit zablokování nebo se vyhnout zablokování, zvažte, že všechny transakce přistupují k řádkům ve stejném pořadí (Table1, pak Table2). Tímto způsobem se sice může dojít k blokování, ale zablokování se vyhne.

Další informace naleznete v tématu Zpracování zablokování a Minimalizace zablokování.