KB2923460 – FIX: zablokovaný dotaz při ALLOW_SNAPSHOT_ISOLATION a READ_COMMITTED_SNAPSHOT v systému SQL Server 2012

Příznaky

Zvažte následující scénář:

  • Máte databázi Microsoft SQL Server 2012 s povolenými možnostmi ALLOW_SNAPSHOT_ISOLATION a READ_COMMITTED_SNAPSHOT .

  • Máte aspoň tři souběžné dotazy, které se spouštějí na stejné tabulce.

  • Dotazy používají pomocný parametr dotazu (TABLOCK, UPDLOCK) .

  • Každý dotaz je zabalen do explicitního příkazu BEGIN TRAN , ale příkaz Commit Tran se neprovede.

Po potvrzení prvního dotazu v tomto scénáři bude jeden z ostatních dotazů zablokovaný. Pokud je READ_COMMITTED_SNAPSHOT povolen společně s doporučeními pro dotazy na TABLOCK a UPDLOCK , relace v tabulce zabírají. Zablokování nastává, když se dvě souběžné relace pokusí převést zámky IX na X zámky najednou. Pokud je READ_COMMITTED_SNAPSHOT zakázaná, budou relace získávat šest zámků, které se při převodu do zámků X nezmění. Tato oprava hotfix řeší toto chování tím, že udělí LCK_M_SCH_S zámky namísto IX, když se READ_COMMITTED_SNAPSHOT používá s tipy pro TABLOCK a UPDLOCK .PoznámkaK tomuto problému dochází taky v Microsoft SQL serveru 2008 R2. Oprava hotfix pro SQL Server 2008 R2 bude brzy vydána.

Každá nová kumulativní aktualizace pro SQL Server obsahuje všechny opravy hotfix a všechny opravy zabezpečení, které byly součástí předchozí kumulativní aktualizace. Podívejte se na nejnovější kumulativní aktualizace SQL serveru:

Stav

Společnost Microsoft potvrzuje, že se jedná o problém v produktech této společnosti, které jsou uvedeny v části Informace v tomto článku jsou určeny pro produkt.

Potřebujete další pomoc?

Rozšiřte své znalosti a dovednosti
Projít školení
Získejte nové funkce jako první
Připojit se k programu Microsoft Insider

Byly tyto informace užitečné?

Děkujeme za váš názor!

Děkujeme vám za váš názor! Pravděpodobně bude užitečné, když vás spojíme s některým z našich agentů podpory Office.

×