KB2451540 – 2451540 – OPRAVA: Slabý výkon sa môže vyskytnúť pri spustení dotazu, ktorý obsahuje viaceré operácie vlastného spojenia v tom istom stĺpci v SQL Server 2005, SQL Server 2008 a SQL Server 2008 R2

Vzťahuje sa na
Microsoft SQL Server 2005 Workgroup Edition Microsoft SQL Server 2005 Evaluation Edition Microsoft SQL Server 2005 Standard Edition Microsoft SQL Server 2005 Express Edition Microsoft SQL Server 2005 Enterprise X64 Edition Microsoft SQL Server 2005 Developer Edition SQL Server 2008 Developer SQL Server 2008 Enterprise SQL Server 2008 Express SQL Server 2008 Standard SQL Server 2008 Workgroup SQL Server 2008 R2 Developer SQL Server 2008 R2 Express SQL Server 2008 R2 Standard SQL Server 2008 R2 Workgroup Microsoft SQL Server 2005 Service Pack 4 Microsoft SQL Server 2005 Service Pack 3

Spoločnosť Microsoft distribuuje opravy Microsoft SQL Server 2005 alebo Microsoft SQL Server 2008 alebo Microsoft SQL Server 2008 R2 ako jeden súbor na stiahnutie. Keďže opravy sú kumulatívne, každé nové vydanie obsahuje všetky rýchle opravy a opravy zabezpečenia, ktoré boli súčasťou predchádzajúceho vydania opráv pre SQL Server 2005 alebo Microsoft SQL Server 2008 alebo Microsoft SQL Server 2008 R2.

Príznaky

Pozrite si nasledujúci scenár. Máte databázu v Microsoft SQL Server 2005 alebo Microsoft SQL Server 2008 alebo Microsoft SQL Server 2008 R2. Spustíte dotaz, ktorý obsahuje viacero operácií vlastného spojenia s tým istým stĺpcom tabuľky v databáze. Ak sa napríklad pokúsite vytvoriť kocku, ktorá používa údaje v databáze, môže sa vykonať dotaz, ktorý obsahuje viacero operácií vlastného spojenia s tým istým stĺpcom. V tomto scenári sa môže vyskytnúť slabý výkon a vykonanie dotazu môže trvať dlho.

Príčina

Tento problém sa vyskytuje, pretože odhad kardinality v dotaze je nesprávny. Po zvážení niekoľkých operácií vlastného spojenia môže optimalizátor dotazov odhadnúť počet riadkov pre iný operátor spojenia na hodnotu 1. Optimalizátor dotazov preto vyberie neefektívny plán dotazu a môže dôjsť k slabému výkonu.

Riešenie

Informácie o kumulatívnych aktualizáciách

SQL Server 2008 Service Pack 2

Oprava tohto problému bola prvýkrát vydaná v kumulatívnej aktualizácii 3 pre balík Service Pack 2 pre SQL Server 2008. Ďalšie informácie o tomto balíku kumulatívnych aktualizácií získate po kliknutí na nasledujúce číslo článku publikovaného v databáze Microsoft Knowledge Base:

2498535 Kumulatívny balík aktualizácie 3 pre balík SQL Server 2008 Service Pack 2Note Keďže zostavy sú kumulatívne, každé nové vydanie opravy obsahuje všetky rýchle opravy a opravy zabezpečenia, ktoré boli zahrnuté v predchádzajúcom vydaní opráv SQL Server 2008. Spoločnosť Microsoft odporúča, aby ste zvážili použitie najnovšej opravy, ktorá obsahuje túto opravu. Ďalšie informácie nájdete v článku databázy Microsoft Knowledge Base, ktorý sa zobrazí po kliknutí na príslušné číslo článku:

2402659 Zostavy SQL Server 2008, ktoré boli vydané po vydaní balíka Service Pack 2 SQL Server 2008 Rýchle opravy Microsoft SQL Server 2008 sa vytvárajú pre konkrétne balíky Service Pack SQL Server. Na inštaláciu balíka SQL Server 2008 Service Pack 2 je potrebné použiť rýchlu opravu balíka SQL Server 2008 Service Pack 2. Predvolene je každá rýchla oprava, ktorá je súčasťou balíka Service Pack pre SQL Server, zahrnutá do ďalšieho balíka Service Pack SQL Server.

SQL Server 2008 R2

Oprava tohto problému bola prvýkrát vydaná v kumulatívnej aktualizácii 6. Ďalšie informácie o tom, ako získať tento balík kumulatívnej aktualizácie pre SQL Server 2008 R2, získate po kliknutí na nasledujúce číslo článku publikovaného v databáze Microsoft Knowledge Base:

2489376 Balík kumulatívnej aktualizácie 6 pre SQL Server 2008 R2 Poznámka: Keďže zostavy sú kumulatívne, každé nové vydanie opravy obsahuje všetky rýchle opravy a opravy zabezpečenia, ktoré boli zahrnuté v predchádzajúcom vydaní opráv SQL Server 2008 R2. Odporúčame, aby ste zvážili použitie najnovšej opravy, ktorá obsahuje túto rýchlu opravu. Ďalšie informácie nájdete v článku databázy Microsoft Knowledge Base, ktorý sa zobrazí po kliknutí na príslušné číslo článku:

981356 Zostavy SQL Server 2008 R2, ktoré boli vydané po vydaní SQL Server 2008 R2

SQL Server 2008 Service Pack 1

Oprava tohto problému bola prvýkrát vydaná v kumulatívnej aktualizácii 12 pre balík SQL Server 2008 Service Pack 1. Ďalšie informácie o tomto balíku kumulatívnych aktualizácií získate po kliknutí na nasledujúce číslo článku publikovaného v databáze Microsoft Knowledge Base:

2467236 Kumulatívny balík aktualizácie 12 pre balík SQL Server 2008 Service Pack 1Poznámka Keďže zostavy sú kumulatívne, každé nové vydanie opravy obsahuje všetky rýchle opravy a opravy zabezpečenia, ktoré boli zahrnuté v predchádzajúcom vydaní opráv SQL Server 2008. Spoločnosť Microsoft odporúča, aby ste zvážili použitie najnovšej opravy, ktorá obsahuje túto opravu. Ďalšie informácie nájdete v článku databázy Microsoft Knowledge Base, ktorý sa zobrazí po kliknutí na príslušné číslo článku:

970365 Zostavy SQL Server 2008, ktoré boli vydané po vydaní balíka Service Pack 1 SQL Server 2008 Rýchle opravy Microsoft SQL Server 2008 sa vytvárajú pre konkrétne balíky Service Pack SQL Server. Na inštaláciu balíka SQL Server 2008 Service Pack 1 je potrebné použiť rýchlu opravu SQL Server 2008 Service Pack 1. Predvolene je každá rýchla oprava, ktorá je súčasťou balíka Service Pack pre SQL Server, zahrnutá do ďalšieho balíka Service Pack SQL Server.

Po nainštalovaní tohto balíka kumulatívnych aktualizácií je potrebné povoliť nástroj Traceflag 4199. Ak to chcete urobiť, môžete pridať počiatočný parameter -T4199 alebo môžete použiť príkaz dbcc traceon(4199) pre jednotlivé relácie.

SQL Server 2005 Service Pack 3

                
SQL Server 2005 Service Pack 3 Oprava tohto problému bola prvýkrát vydaná v kumulatívnej aktualizácii 13 pre balík SQL Server 2005 Service Pack 3. Ďalšie informácie o tomto balíku kumulatívnych aktualizácií získate po kliknutí na nasledujúce číslo článku publikovaného v databáze Microsoft Knowledge Base:

2438344 Kumulatívny balík aktualizácie 13 pre balík SQL Server 2005 Service Pack 3Note Keďže zostavy sú kumulatívne, každé nové vydanie opravy obsahuje všetky rýchle opravy a opravy zabezpečenia, ktoré boli zahrnuté v predchádzajúcom vydaní opráv SQL Server 2005. Spoločnosť Microsoft odporúča, aby ste zvážili použitie najnovšej opravy, ktorá obsahuje túto opravu. Ďalšie informácie nájdete v článku databázy Microsoft Knowledge Base, ktorý sa zobrazí po kliknutí na príslušné číslo článku:

960598 Zostavy SQL Server 2005 vydané po vydaní balíka Service Pack 3 SQL Server 2005 Rýchle opravy služieb Microsoft SQL Server 2005 sa vytvárajú pre konkrétne balíky Service Pack SQL Server. Na inštaláciu balíka SQL Server 2005 Service Pack 3 je potrebné použiť rýchlu opravu SQL Server 2005 Service Pack 3. Predvolene je každá rýchla oprava, ktorá je súčasťou balíka Service Pack pre SQL Server, zahrnutá do ďalšieho balíka Service Pack SQL Server.

Po nainštalovaní tohto balíka kumulatívnych aktualizácií je potrebné povoliť nástroj Traceflag 4199. Ak to chcete urobiť, môžete pridať počiatočný parameter -T4199 alebo môžete použiť príkaz dbcc traceon(4199) pre jednotlivé relácie.

SQL Server 2005 Service Pack 4

Oprava tohto problému bola prvýkrát vydaná v Kumulatívnej aktualizácii 2 pre balík Service Pack 4 pre SQL Server 2005. Ďalšie informácie o tomto balíku kumulatívnych aktualizácií získate po kliknutí na nasledujúce číslo článku publikovaného v databáze Microsoft Knowledge Base:

2489409 Kumulatívny balík aktualizácie 2 pre balík SQL Server 2005 Service Pack 4Note Keďže zostavy sú kumulatívne, každé nové vydanie opravy obsahuje všetky rýchle opravy a opravy zabezpečenia, ktoré boli zahrnuté v predchádzajúcej verzii opráv SQL Server 2005. Spoločnosť Microsoft odporúča, aby ste zvážili použitie najnovšej opravy, ktorá obsahuje túto opravu. Ďalšie informácie nájdete v článku databázy Microsoft Knowledge Base, ktorý sa zobrazí po kliknutí na príslušné číslo článku:

2485757 Zostavy SQL Server 2005, ktoré boli vydané po vydaní balíka Service Pack 4 SQL Server 2005 Rýchle opravy služieb Microsoft SQL Server 2005 sa vytvárajú pre konkrétne balíky Service Pack SQL Server. Na inštaláciu balíka SQL Server 2005 Service Pack 4 je potrebné použiť rýchlu opravu SQL Server 2005 Service Pack 4. Predvolene je každá rýchla oprava, ktorá je súčasťou balíka Service Pack pre SQL Server, zahrnutá do ďalšieho balíka Service Pack SQL Server.

Stav

Spoločnosť Microsoft potvrdila, že ide o problém v produktoch spoločnosti Microsoft, ktoré sú uvedené v časti Vzťahuje sa na.

Odkazy

Ďalšie informácie o modeli prírastkovej údržby pre SQL Server získate po kliknutí na nasledujúce číslo článku publikovaného v databáze Microsoft Knowledge Base:

935897 Tím SQL Server poskytuje k dispozícii prírastkový model údržby na poskytovanie rýchlych opráv pre nahlásené problémyĎalšie informácie o schéme pomenovania pre aktualizácie SQL Server aktualizácie zobrazíte po kliknutí na nasledujúce číslo článku publikovaného v databáze Microsoft Knowledge Base:

822499 Nová schéma pomenovania pre balíky aktualizácií softvéru Microsoft SQL Server Ďalšie informácie o terminológii aktualizácií softvéru získate po kliknutí na nasledujúce číslo článku publikovaného v databáze Microsoft Knowledge Base:

824684 Popis štandardnej terminológie, ktorá sa používa na popis aktualizácií softvéru spoločnosti Microsoft