Společnost Microsoft distribuuje aktualizace Microsoft SQL Server 2008 R2 Service Pack 1 (SP1) nebo Microsoft SQL Server 2012 v jednom souboru ke stažení. Protože jsou opravy kumulativní, každá nová verze obsahuje všechny opravy hotfix a všechny aktualizace zabezpečení, které byly součástí předchozí verze systému SQL Server 2008 R2 Service Pack 1 (SP1) nebo aktualizace Microsoft SQL Server 2012 Update.
Příznaky
Zvažte následující scénář:
-
Upgradujete z Microsoft SQL serveru 2005 na Microsoft SQL Server 2008 nebo na Microsoft SQL Server 2008 R2 nebo Microsoft SQL Server 2012.
-
Spustíte dotaz, který používá sp_cursoropen uloženou proceduru, a pak určíte parametr RowCount , který načte prvních několik řádků tabulky.
V tomto scénáři může být výkon pomalejší, než když spustíte stejný dotaz v SQL serveru 2005.
Příčina
K tomuto problému dochází, protože Optimalizátor dotazů používá místo dynamického plánu ukazatel statického ukazatele. Pro statický plán kurzoru načte SQL Server všechny řádky a vloží je do tabulky kurzorů. U dynamického plánu kurzorů však SQL Server načte pouze řádky, které jsou potřeba.
Řešení
Informace o kumulativní aktualizaci
SQL Server 2012
Oprava pro tento problém byla poprvé vydána v kumulativní aktualizaci 1 pro SQL Server 2012. Další informace o tomto kumulativním balíčku aktualizací najdete v následujícím článku znalostní báze Microsoft Knowledge Base:
2679368 Kumulativní aktualizace 1 pro SQL Server 2012Poznámka Vzhledem k tomu, že buildy jsou kumulativní, každá nová oprava obsahuje všechny opravy hotfix a všechny opravy zabezpečení, které byly součástí předchozího SQL serveru 2012 Oprava. Společnost Microsoft doporučuje zvážit použití nejnovější opravy, která obsahuje tuto opravu hotfix. Další informace naleznete v následujícím článku znalostní báze Microsoft Knowledge Base:
2692828 Buildy SQL Server 2012, které byly vydány po vydání SQL Server 2012 Na instalaci SQL serveru 2012 musíte použít opravu hotfix systému SQL Server 2012.
Kumulativní aktualizace 5 pro SQL Server 2008 R2 SP1
Po použití této opravy hotfix povolte příznak trasování 4199. Oprava pro tento problém byla poprvé vydána v kumulativní aktualizaci 5. Další informace o tom, jak získat tento kumulativní balíček aktualizací pro SQL Server 2008 R2 SP1, najdete v následujícím článku znalostní báze Microsoft Knowledge Base:
2659694 Kumulativní aktualizace 5 pro SQL Server 2008 R2 SP1Poznámka Vzhledem k tomu, že buildy jsou kumulativní, každá nová oprava obsahuje všechny opravy hotfix a všechny opravy zabezpečení, které byly součástí předchozí verze systému SQL Server 2008 R2 s aktualizací SP1. Doporučujeme zvážit použití nejnovější opravy, která obsahuje tuto opravu hotfix. Další informace naleznete v následujícím článku znalostní báze Microsoft Knowledge Base:
2567616 Buildy SQL Server 2008 R2 vydaná po vydání SQL serveru 2008 R2 SP1
Alternativní řešení
Tomuto problému se můžete vyhnout tak, že do dotazu přidáte Tip pro rychlý dotaz.
Další informace
Další informace o tom, jak používat Rady dotazů, najdete na následujícím webu MSDN:
Obecné informace o používání nápovědy k dotazůmDalší informace o příznaku trasování 4199 najdete na následujícím webu:
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.