OPRAVA: Může dojít ke snížení výkonu při spuštění dotazu, že použití sp_cursoropen uložené procedury po upgradu ze serveru SQL Server 2005, SQL Server 2008 nebo SQL Server 2008 R2 nebo SQL Server 2012

Společnost Microsoft distribuuje Microsoft SQL Server 2008 R2 Service Pack 1 (SP1) nebo Microsoft SQL Server 2012 opravy v jednom souboru ke stažení. Protože jsou kumulativní opravy, každá nová verze tedy obsahuje všechny opravy hotfix a všechny aktualizace zabezpečení, které byly součástí předchozích SQL Server 2008 R2 Service Pack 1 (SP1) nebo Microsoft SQL Server 2012 vydání aktualizace.

Příznaky

Jde o takovouto situaci:
  • Provádíte upgrade ze Microsoft SQL Server 2005, Microsoft SQL Server 2008 nebo Microsoft SQL Server 2008 R2 nebo Microsoft SQL Server 2012.
  • Spustit dotaz, který používá sp_cursoropen uložené procedury a potom zadejte rowcount parametr fetch prvních několika řádků tabulky.
V tomto scénáři může být pomalejší než spuštění téhož dotazu v SQL Server 2005 výkonu.

Příčina

K tomuto problému dochází, protože Optimalizátor dotazů použije plán dynamické kurzor kurzor statického plánu. Kurzor statického plánu SQL Server načte všechny řádky a vloží je do pracovní tabulky kurzor. Pro plán dynamické kurzor načte SQL Server pouze řádky, které jsou potřebné.

Řešení

Informace o kumulativní aktualizaci

SQL Server 2012

Oprava tohoto problému byla vydána nejprve v kumulativní aktualizaci 1 pro SQL Server 2012. Další informace o tomto balíčku kumulativní aktualizace klepněte na následující číslo článku databáze Microsoft Knowledge Base:
2679368 kumulativní aktualizace 1 pro SQL Server 2012
Poznámka: Vzhledem k tomu, sestavení jsou kumulativní, každá nová verze oprava obsahuje všechny opravy hotfix a všechny opravy zabezpečení, které byly součástí předchozích SQL Server 2012 verzí oprav. Společnost Microsoft doporučuje zvážit použití nejnovější vydání oprava, která obsahuje tuto opravu hotfix. Další informace získáte v následujícím článku znalostní báze Microsoft Knowledge Base:
2692828 SQL Server 2012 vytvoří, které byly vydány po vydání SQL Server 2012
K instalaci aplikace SQL Server 2012 musí použít opravu hotfix SQL Server 2012.

Balíček kumulativní aktualizace 5 pro SQL Server 2008 R2 SP1

Po instalaci této opravy hotfix, povolte příznak trasování 4199.

Oprava tohoto problému byla vydána nejprve v kumulativní aktualizaci 5. Další informace o získání tohoto balíčku kumulativní aktualizace pro SQL Server 2008 R2 SP1 získáte v následujícím článku znalostní báze Microsoft Knowledge Base:
2659694 kumulativní aktualizace balíčku 5 pro SQL Server 2008 R2 SP1
Poznámka: Vzhledem k tomu, sestavení jsou kumulativní, každá nová verze oprava obsahuje všechny opravy hotfix a verzí oprav všech oprav zabezpečení, které byly součástí předchozích SQL Server 2008 R2 SP1. Doporučujeme zvážit použití nejnovější vydání oprava, která obsahuje tuto opravu hotfix. Další informace získáte v následujícím článku znalostní báze Microsoft Knowledge Base:
2567616 SQL Server 2008 R2 sestavení, které byly vydány po vydání SQL Server 2008 R2 SP1

Jak potíže obejít

Chcete-li tento problém vyřešit, přidejte Rada FAST dotazu do dotazu.

Další informace

Další informace o použití Rady při psaní dotazu naleznete na následujícím webu MSDN:Další informace o příznak trasování 4199 naleznete na následujícím webu:

Stav

Společnost Microsoft potvrdila, že se jedná o problém v produktech společnosti Microsoft, které jsou uvedeny v části "Platí pro".
Vlastnosti

ID článku: 2649913 - Poslední kontrola: 12. 1. 2017 - Revize: 1

Váš názor