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

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
Tento článek byl archivován. Je nabízen v takovém stavu, v jakém je, a nebude již nadále aktualizován.
BUG #: 351918 (SHILOH_BUGS)
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 Northwindgoselect top 1 * from(select orderid from orders union allselect orderid from orders union allselect orderid from orders union allselect orderid from orders union allselect orderid from orders union allselect orderid from orders union allselect orderid from orders union allselect orderid from orders union allselect orderid from orders union allselect orderid from orders union allselect orderid from orders union allselect orderid from orders union allselect orderid from orders union allselect orderid from orders union allselect orderid from orders union allselect orderid from orders union allselect orderid from orders union allselect orderid from orders union allselect orderid from orders union allselect orderid from orders union all select orderid from orders) xxorder 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í.

Upozornění: Tento článek je přeložený automaticky

Vlastnosti

ID článku: 295037 - Poslední kontrola: 01/16/2015 22:17:14 - Revize: 3.2

Microsoft SQL Server 2000 Standard Edition

  • kbnosurvey kbarchive kbmt kbbug kbfix kbsqlserv2000sp1fix KB295037 KbMtcs
Váš názor