Platí proSQL Server 2008 R2 Service Pack 2 SQL Server 2008 R2

Příznaky

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

  • Máte databázi s možnostmi ALLOW_SNAPSHOT_ISOLATION a READ_COMMITTED_SNAPSHOT v Microsoft SQL serveru 2008 R2 povolené.

  • Spustíte příkaz Select , který obsahuje rady TABLOCK a UPDLOCK v tabulce v databázi.

  • Příkaz Select je zabalen v explicitním počátečním Tran, ale neprovádí se to.

  • V explicitní transakci jsou uvedené další dva stejné dotazy, které jsou zahájené se stejnými tipy pro dotazy.

V tomto scénáři bude při každém potvrzení prvního dotazu jeden z ostatních dotazů zablokovaný.

Příčina

K tomuto problému dochází, protože SQL Server nesprávně hlásí zablokování v jednom z následujících scénářů:

  • Když jsou pro databázi povolené ALLOW_SNAPSHOT_ISOLATION a READ_COMMITTED_SNAPSHOT , může být po dokončení jednoho z nich více dotazů na stejnou transakci označeno jako nesprávné.

  • Pokud je povolená ALLOW_SNAPSHOT_ISOTION a použijí se TABLOCK a UPDLOCK , použije se druhý a třetí příkaz Select , který se dá převést na X. Po provedení pokusu o převod na X se zámky IX ukončí.

  • Pokud ALLOW_SNAPSHOT_ISOLATION zakázán, druhý a třetí dotaz obdrží šest zámek. V této situaci, když je šest zámek převedený na X, jde jenom o blokující scénář, ne zablokování.

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?

Chcete další možnosti?

Prozkoumejte výhody předplatného, projděte si školicí kurzy, zjistěte, jak zabezpečit své zařízení a mnohem více.