Oprava: SLOUČENÍ unie je Nepoužito s velkým počtem UNION klauzulí

Překlady článku Překlady článku
ID článku: 295037 - Produkty, které se vztahují k tomuto článku.
BUG #: 351918 (SHILOH_BUGS)
Rozbalit všechny záložky | Minimalizovat všechny záložky

Na této stránce

Příznaky

Dotazy, které používají více než 20 UNION ALL klauzule větve jsou spouštěny s HASH unie, namísto účinnější sloučit unie, které způsobí, že využití nadměrné paměti a může mít za následek selhání dotazu. Důsledek tohoto je, že distribuovaných rozdělených zobrazení spuštěné v uzlech 24 má plánů různých a méně efektivní než zobrazení na 20 uzlů.

Řešení

Tento problém vyřešíte pomocí nejnovější aktualizace service pack pro SQL Server 2000. Další informace získáte následujícím článku báze Microsoft Knowledge Base:
290211Soubor INF: Jak získat nejnovější aktualizaci Service Pack pro SQL Server 2000

Jak potíže obejít

Pomocí dotazu nápovědu sloučit unie bude tento problém obejít. Ujistěte se, že všechny tipy Optimalizátor byly důkladně testovány před uvádění do provozu.

Prohlášení

Společnost Microsoft potvrzuje, že se jedná o problém na serveru SQL Server 2000. Tento problém byl poprvé opraven v aktualizaci SQL Server 2000 Service Pack 1.

Další informace

Kroky pro reprodukci chování

  1. Otevřete okno Analýza dotazu.
  2. V nabídce dotaz klepněte na Zobrazit plán spuštění.
  3. Spustit následující dotaz:
    use Northwind
    go
    select top 1 * from
    (
    select orderid from orders union all
    select orderid from orders union all
    select orderid from orders union all
    select orderid from orders union all
    select orderid from orders union all
    select orderid from orders union all
    select orderid from orders union all
    select orderid from orders union all
    select orderid from orders union all
    select orderid from orders union all
    select orderid from orders union all
    select orderid from orders union all
    select orderid from orders union all
    select orderid from orders union all
    select orderid from orders union all
    select orderid from orders union all
    select orderid from orders union all
    select orderid from orders union all
    select orderid from orders union all
    select orderid from orders 
    union all select orderid from orders
    ) xx
    order by orderid
    					
  4. Klepněte na kartu Plán spuštění a sledujte výsledky.
  5. Komentář mimo následující řádek dotazu:
    union all select orderid from orders
    					
  6. Upravený dotaz spustit a sledovat změny v plánu na kartě Spuštění plánování.

Vlastnosti

ID článku: 295037 - Poslední aktualizace: 6. listopadu 2003 - Revize: 3.2
Informace v tomto článku jsou určeny pro produkt:
  • Microsoft SQL Server 2000 Standard Edition
Klíčová slova: 
kbmt kbbug kbfix kbsqlserv2000sp1fix KB295037 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:295037

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