Oprava: Zablokování může dojít při vyvolání více souběžných dotazu oznámení odběry na stejné objekty v SQL Server 2005 nebo SQL Server 2008

Překlady článku Překlady článku
ID článku: 975090 - Produkty, které se vztahují k tomuto článku.
Společnost Microsoft distribuuje opravy Microsoft SQL Server 2005 jako jeden soubor ke stažení. Protože jsou kumulativní opravy, každé nové vydání obsahuje všechny opravy hotfix a opravte všechny opravy zabezpečení, které byly součástí předchozí SQL Server 2005 vydání.Společnost Microsoft distribuuje opravy Microsoft SQL Server 2008 jako jeden soubor ke stažení. Protože jsou kumulativní opravy, každé nové vydání obsahuje všechny opravy hotfix a opravte všechny opravy zabezpečení, které byly součástí předchozí SQL Server 2008 vydání.
Rozbalit všechny záložky | Minimalizovat všechny záložky

Příznaky

Předpokládejme následující situaci:
  • Microsoft SQL Server 2005 nebo Microsoft SQL Server 2008 nastavit více odběry oznámení dotazu na některé tabulky.
  • Aktualizace těchto tabulek.
  • Požadavky pro odběry oznámení dotazu jsou aktivována souběžně.
V tomto scénáři může dojít zablokování v dotazu oznámení systémových tabulek (například systémové tabulky s názvem podobná sys.query_notification_xxxxxx). Následující graf zablokování je dále zaznamenána v souboru protokolu chyb serveru SQL:
id číšník = process7f8dc48 režimu = U requestType = čekání,
číšník seznamu
id vlastníka = process873ce38 režimu = U,
vlastník seznamu
keylock hobtid = 72057594049462272 dbid = 5 název_objektu = <database>. sys.query_notification_626101271 indexname = cidx id = lock178dd6c0
režim = U associatedObjectId = 72057594049462272,
id číšník = process873ce38 režimu = U requestType = čekání,
číšník seznamu
id vlastníka = process7f8dc48 režimu = U,
vlastník seznamu
keylock hobtid = 72057594049462272 dbid = 5 název_objektu = <database>. sys.query_notification_626101271 indexname = cidx id = lock176848c0
režim = U associatedObjectId = 72057594049462272,
Seznam zdrojů,
<query>,
inputbuf,
<query>,
rámec název_procedury = adhoc řádku = 1 sqlhandle = 0x020000009f5c4302918e8370f6d9bd71045a53f75b8056b3,
executionStack,
id procesu = process873ce38 taskpriority = 0 logused = 0 waitresource = KEY: waittime 5:72057594049462272 (0e0086ec58d5) = 4984 ownerId = 574444809 transactionname = CQueryScan::BeginNotifXact lasttranstarted = <Date><Time>XDES = 0x732047f8 lockMode = U schedulerid = 7 kpid = 8068 stav = pozastavenou spid = 133 sbid = 0 ecid = prioritu 0 = 0 transcount = 0 lastbatchstarted = <Date><Time>lastbatchcompleted = <Date><Time>clientapp = .NET zprostředkovatele dat SqlClient název_hostitele = <hostname>hostpid = 1824 loginname = <loginname>isolationlevel = čtení potvrzených xactid (2) = 574444808 currentdb = 5 lockTimeout = 4294967295 clientoption1 = 671088672 clientoption2 = 128056,
<query>,
inputbuf,
<query>,
rámec název_procedury = adhoc řádku = 1 sqlhandle = 0x020000009f5c4302918e8370f6d9bd71045a53f75b8056b3,
executionStack,
id procesu = process7f8dc48 taskpriority = 0 logused = 0 waitresource = KEY: waittime 5:72057594049462272 (0d006843edc7) = 4984 ownerId = 574444769 transactionname = CQueryScan::BeginNotifXact lasttranstarted = <Date><Time>XDES = 0x6adc9528 lockMode = U schedulerid = 5 kpid = 676 stav = pozastavenou spid = 293 sbid = 0 ecid = prioritu 0 = 0 transcount = 0 lastbatchstarted = <Date><Time>lastbatchcompleted = <Date><Time>clientapp = .NET zprostředkovatele dat SqlClient název_hostitele = <hostname>110 hostpid = 1272 loginname = <loginname>isolationlevel = čtení potvrzených xactid (2) = 574444768 currentdb = 5 lockTimeout = 4294967295 clientoption1 = 671088672 clientoption2 = 128056,
Seznam procesů,
zablokování obětí = process873ce38,
zablokování seznamu

Příčina

SQL Server používá ve výchozím nastavení úroveň izolace transakce READ_COMMITTED. Vnitřní dotazů serveru SQL Server proto mít potenciální spustit do zablokování. Ve scénáři, která je popsána v části "Příznaky" jsou dotazy zablokování způsobit vnitřní dotazy.

Řešení

SQL Server 2005 Service Pack 3

Oprava tohoto problému byla vydána nejprve v kumulativní aktualizaci 6 pro SQL Server 2005 Service Pack 3. Další informace o tomto balíčku kumulativní aktualizace klepněte na následující číslo článku databáze Microsoft Knowledge Base:
9746486 Balíček kumulativní aktualizace pro SQL Server 2005 Service Pack 3
Poznámka: Protože jsou kumulativní sestavení, každé nové verzi oprava obsahuje všechny opravy hotfix a opravte všechny opravy zabezpečení, které byly součástí předchozí SQL Server 2005 vydání. Společnost Microsoft doporučuje zvážit instalaci nejnovější vydání oprava, která obsahuje tuto opravu hotfix. Další informace naleznete následujícím článku znalostní databáze Microsoft Knowledge Base:
960598SQL Server 2005 vytvoří, které byly vydány po vydání SQL Server 2005 Service Pack 3
Opravy hotfix Microsoft SQL Server 2005 jsou vytvořeny pro konkrétní aktualizace service Pack pro SQL Server. K instalaci aplikace SQL Server 2005 Service Pack 3 musí použít opravu hotfix SQL Server 2005 Service Pack 3. Ve výchozím opravy hotfix, která je poskytována v aktualizace service pack pro SQL Server součástí příští aktualizace service pack pro SQL Server.

Verze SQL Server 2008

Důležité: Pokud používáte verzi SQL Server 2008, je nutné nainstalovat tuto opravu.

Oprava tohoto problému byla vydána nejprve v kumulativní aktualizaci 8. Další informace o získání tohoto balíčku kumulativní aktualizace pro SQL Server 2008 klepnutím na následující číslo článku databáze Microsoft Knowledge Base:
975976Balíček kumulativní aktualizace 8 pro SQL Server 2008
Poznámka: Protože jsou kumulativní sestavení, každé nové verzi oprava obsahuje všechny opravy hotfix a opravte všechny opravy zabezpečení, které byly součástí předchozí SQL Server 2008 vydání. Doporučujeme zvážit použití nejnovější vydání oprava, která obsahuje tuto opravu hotfix. Další informace naleznete následujícím článku znalostní databáze Microsoft Knowledge Base:
956909Sestaví SQL Server 2008, které byly vydány po vydání SQL Server 2008

SQL Server 2008 Service Pack 1

Důležité: Pokud běží SQL Server 2008 Service Pack 1, je nutné nainstalovat tuto opravu.

Oprava tohoto problému byla vydána nejprve v kumulativní aktualizaci 5 pro SQL Server 2008 Service Pack 1. Další informace o tomto balíčku kumulativní aktualizace klepněte na následující číslo článku databáze Microsoft Knowledge Base:
975977Balíček kumulativní aktualizace 5 pro SQL Server 2008 Service Pack 1
Poznámka: Protože jsou kumulativní sestavení, každé nové verzi oprava obsahuje všechny opravy hotfix a opravte všechny opravy zabezpečení, které byly součástí předchozí SQL Server 2008 vydání. Společnost Microsoft doporučuje zvážit instalaci nejnovější vydání oprava, která obsahuje tuto opravu hotfix. Další informace naleznete následujícím článku znalostní databáze Microsoft Knowledge Base:
970365Sestaví SQL Server 2008, které byly vydány po vydání SQL Server 2008 Service Pack 1
Microsoft SQL Server 2008 opravy hotfix jsou vytvořeny pro konkrétní aktualizace service Pack pro SQL Server. K instalaci aplikace SQL Server 2008 Service Pack 1, je třeba použít opravu hotfix SQL Server 2008 Service Pack 1. Ve výchozím opravy hotfix, která je poskytována v aktualizace service pack pro SQL Server součástí příští aktualizace service pack pro SQL Server.

Po instalaci této opravy úroveň izolace při databázový stroj přistupuje k systémové tabulky k Serializable nastavit.

Prohlášení

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

Podle příčinou tohoto problému typické metodu optimalizace a indexování nemůže tento problém vyřešit. Opravy hotfix lze dočasně změnit úroveň izolace vyšší úroveň součástí této transakce zkontrolujte problematické dotazy do zablokování nespouštějte.

Odkazy

Další informace o přírůstkové Servicing Model pro SQL Server klepněte na následující číslo článku databáze Microsoft Knowledge Base:
935897Přírůstkové Model Servicing je k dispozici z týmu SQL Server doručit opravy hotfix pro nahlášené potíže
Další informace o tom, jak získat SQL Server 2005 Service Pack 3, Microsoft Knowledge Base:
913089Jak získat nejnovější aktualizaci service pack pro SQL Server 2005
Další informace o nových funkcích SQL Server 2005 Service Pack 3 (SP3) a o vylepšeních v SQL Server 2005 SP3 naleznete na následujícím webu:
http://go.microsoft.com/fwlink/?LinkId=131442
Další informace o pojmenování schématu aktualizace SQL Server klepněte na následující číslo článku databáze Microsoft Knowledge Base:
822499Nové schéma přidělování názvů pro balíčky aktualizací softwaru Microsoft SQL Server
Další informace o terminologii používané v aktualizacích softwaru naleznete v následujícím článku znalostní báze Microsoft Knowledge Base:
824684Popis standardní terminologie používané při popisu aktualizací softwaru společnosti Microsoft

Vlastnosti

ID článku: 975090 - Poslední aktualizace: 19. října 2009 - Revize: 1.1
Informace v tomto článku jsou určeny pro produkt:
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Enterprise Edition
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL Server 2005 Workgroup Edition
  • Microsoft SQL Server 2005 Standard X64 Edition
  • Microsoft SQL Server 2005 Standard Edition for Itanium Based Systems
  • Microsoft SQL Server 2005 Enterprise X64 Edition
  • Microsoft SQL Server 2005 Enterprise Edition for Itanium Based Systems
  • Microsoft SQL Server 2008 Developer
  • Microsoft SQL Server 2008 Enterprise
  • Microsoft SQL Server 2008 Standard
  • Microsoft SQL Server 2008 Web
  • Microsoft SQL Server 2008 Workgroup
Klíčová slova: 
kbmt kbexpertiseadvanced kbsurveynew kbqfe kbfix KB975090 KbMtcs
Strojově přeložený článek
Důležité: Tento článek byl přeložen pomocí software společnosti Microsoft na strojový překlad, ne profesionálním překladatelem. Společnost Microsoft nabízí jak články přeložené překladatelem, tak články přeložené pomocí software na strojový překlad, takže všechny články ve Znalostní databázi (Knowledge Base) jsou dostupné v češtině. Překlad pomocí software na strojový překlad ale není bohužel vždy dokonalý. Obsahuje chyby ve skloňování slov, skladbě vět, nebo gramatice, podobně jako když cizinci dělají chyby při mluvení v češtině. Společnost Microsoft není právně zodpovědná za nepřesnosti, chyby nebo škody vzniklé chybami v překladu, nebo při použití nepřesně přeložených instrukcí v článku zákazníkem. Společnost Microsoft aktualizuje software na strojový překlad, aby byl počet chyb omezen na minimum.
Projděte si také anglickou verzi článku:975090

Dejte nám zpětnou vazbu

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com