Příznaky
Zvažte následující scénář v Microsoft SQL Server Compact 3.5:
-
Máte dvě transakce serializovatelný izolace.
-
Obě transakce zkuste provést operaci DML (dotaz/DML) v téže tabulce, která obsahuje nápovědu uzamčení TABLOCK nebo uzamčení nápovědy XLOCK.
V tomto případě dojde k zablokování.
Příčina
K tomuto problému dochází, protože obě operace počkat vzájemně XLOCK. Při kompilaci dotazu získá obě transakce získat sdílený zámek v tabulce a potom drží zámek pro izolaci serializovatelný. Při pokusu o provedení execute, dotaz v téže tabulce, která obsahuje XLOCK uzamčení pokyn, obě transakce obě transakce počkejte vzájemně XLOCK. Proto dojde k zablokování.PoznámkaK tomuto problému také dochází při obě transakce provést operaci DML na stejnou tabulku, která obsahuje nápovědu uzamčení TABLOCK.
Řešení
SQL Server Compact 3.5 Service Pack 2
Oprava tohoto problému byla vydána nejprve v kumulativní aktualizaci 2. Další informace o možnostech získání tohoto balíčku kumulativní aktualizace pro SQL Server 2008 R2 klepněte na následující číslo článku databáze Microsoft Knowledge Base:
2289547 Kumulativní aktualizace 2 pro SQL Server Compact 3.5 Service Pack 2
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.
Další informace
Další informace o zablokování naleznete na následujícím webu Microsoft Developer Network (MSDN):
ZablokováníDalší informace o DML naleznete na následujícím webu MSDN:
DMLPro další informace o terminologii používané v aktualizacích softwaru, klepněte na následující číslo článku k zobrazení článku v databázi Microsoft Knowledge Base:
824684 Popis standardní terminologie používané při popisu aktualizací softwaru společnosti Microsoft