Oprava: Při spuštění dotazu, který používá MIN nebo MAX funkce proti oddílů zobrazení SQL Server 2008 dotaz spustí mnohem pomaleji než při spuštění téhož dotazu v SQL Server 2005

Překlady článku Překlady článku
ID článku: 973255 - Produkty, které se vztahují k tomuto článku.
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

V Microsoft SQL Server 2008 vytvořit zobrazení oddílů. Spustit dotaz, který používá MIN nebo MAX agregační funkce proti zobrazení oddílů. Může se však najít spustí dotaz SQL Server 2008 mnohem pomalejší než spuštění téhož dotazu v SQL Server 2005.

Prozkoumejte plán provádění dotazu zjistíte, že prezentuje operátor TOP v plán vykonání SQL Server 2005. Operátor TOP však nezobrazí v plán vykonání SQL Server 2008.

Například plán vykonání SQL Server 2005 následujícímu:
  |--Stream Aggregate(DEFINE:([Expr1190]=MAX([partialagg1191])))
       |--Concatenation
            |--Top(TOP EXPRESSION:((1)))
            |    |--Clustered Index Scan(OBJECT:([Server].[dbo].[Database].[PK]), ORDERED BACKWARD)
            |--Top(TOP EXPRESSION:((1)))
                 |--Clustered Index Scan(OBJECT:([Server].[dbo].[Database].[PK]), ORDERED BACKWARD)
plán spuštění téhož dotazu SQL Server 2008 však podobná následující:
  |--Stream Aggregate(DEFINE:([Expr1190]=MAX([partialagg1191])))
       |--Concatenation
            |--Stream Aggregate(DEFINE:([partialagg1191]=MAX([Server].[dbo].[Database].[Column])))
            |    |--Index Scan(OBJECT:([Server].[dbo].[Database].[Index]))
            |--Stream Aggregate(DEFINE:([partialagg1191]=MAX([Server].[dbo].[Database].[Column])))
                 |--Index Scan(OBJECT:([Server].[dbo].[Database].[Index]))

Příčina

Databázový stroj SQL zavádí pravidlo přeloží funkce agregace MIN a MAX použijte operátor TOP (1) a operátor rejstřík hledání na plán provádění. Však v tomto scénáři pravidlo nefunguje v produktu SQL Server 2008. Chybný index je proto použít na zobrazení oddílu. To způsobuje problém výkonu.

Řešení

Oprava tohoto problému byla vydána nejprve v kumulativní aktualizace 4 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:
973602Balíček kumulativní aktualizace 4 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.
Příznak trasování 4199 této opravy hotfix projeví, je nutné povolit.

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.

Odkazy

Další informace o modelu přírůstkové Servicing 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 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: 973255 - Poslední aktualizace: 22. září 2009 - Revize: 1.1
Informace v tomto článku jsou určeny pro produkt:
  • Microsoft SQL Server 2008 Standard
  • Microsoft SQL Server 2008 Developer
  • Microsoft SQL Server 2008 Enterprise
  • Microsoft SQL Server 2008 Workgroup
Klíčová slova: 
kbmt kbsurveynew kbfix kbqfe kbexpertiseadvanced KB973255 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:973255

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