Prihláste sa s kontom Microsoft
Prihláste sa alebo si vytvorte konto.
Dobrý deň,
Vyberte iné konto.
Máte viacero kont
Vyberte konto, s ktorým sa chcete prihlásiť.

Spoločnosť Microsoft distribuuje Microsoft SQL Server 2008 R2 Service Pack 1 (SP1) alebo Microsoft SQL Server 2012 opravy v jednom súbore na stiahnutie. Keďže opravy sú kumulatívne, každé nové vydanie obsahuje všetky rýchlych opráv a všetky aktualizácie zabezpečenia, ktoré boli súčasťou predchádzajúceho SQL servera 2008 R2 Service Pack 1 (SP1) alebo SQL Server 2012 Update Release.

Príznaky

Zvážte nasledujúci scenár. Spustíte dotaz v Microsoft SQL Server 2008 R2 alebo Microsoft SQL Server 2012 a Optimalizácia dotazu generuje plán vykonávania, ktorý obsahuje najvyšších operátorov. V tomto scenári môže dotaz trvať dlho, kým sa nespustí. Napríklad spustíte dotaz, ktorý sa podobá nasledujúcemu hláseniu:

SELECT TableA.Col1 FROM TableA JOIN TableB ON TableA.Col1 = TableB.Col1 WHERE TableA.Col2 = N'A' AND TableB.Col3 IN (SELECT Col1 FROM TableC )Tento dotaz zahŕňa dva spojenia. Jedným spojením je medzi TableB a TableC. (Toto je implicitné prítomnosťou v predikáte.) Ďalšie spojenie sa nachádza medzi tabuľkou a a výsledkom prvého spojenia. V predikáte sa vráti hodnotu TRUE, ak dotaz nájde aspoň jeden riadok, ktorý spĺňa prvý predikát spojenia. Preto sa v rámci nástroja na optimalizáciu dotazov v pláne vykonávania dotazu pridá horný operátor. Takýto dotaz môže vrátiť len niekoľko riadkov. Na vykonanie tohto dotazu však môže trvať dlhšie, než by sa dalo očakávať. V aktuálnom pláne vykonávania dotazov sa odhadovaný počet riadkov výrazne líši od skutočného počtu riadkov. Ovplyvní to schopnosť optimalizácie dotazu presne odhadnúť náklady na rôzne možnosti plánu. Problém sa môže vyskytnúť aj v prípade, ak používate TOP operátora explicitne alebo ak používate niektorý z týchto operátorov:

  • MOŽNOSŤ (FAST N)

  • V

  • Existuje

Riešenie

Kumulatívna aktualizácia informácií

SQL Server 2008 R2 Service Pack 2

Oprava tohto problému bola prvýkrát vydaná v kumulatívnej aktualizácii 1 pre SQL Server 2008 R2 Service Pack 2. Ďalšie informácie o možnostiach získania tohto balíka kumulatívnych aktualizácií nájdete v článku databázy Microsoft Knowledge Base, ktorý sa zobrazí po kliknutí na nasledovné číslo článku:

2720425 Kumulatívna aktualizácia balíka 1 pre SQL Server 2008 R2 Service Pack 2Poznámka: Pretože zostavy sú kumulatívne, každé nové vydanie opraviť obsahuje všetky rýchlych opráv a všetky opravy zabezpečenia, ktoré boli súčasťou predchádzajúceho SQL servera 2008 R2 opraviť uvoľnenia. Odporúčame, aby ste zvážili uplatnenie najnovších opráv, ktoré túto rýchlu opravu obsahujú. Ď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:

2730301 Zostavy SQL servera 2008 R2, ktoré boli vydané po vydaní SQL servera 2008 R2 Service Pack 2

SQL Server 2008 R2 Service Pack 1

Oprava tohto problému bola prvýkrát vydaná v kumulatívnej aktualizácii 7 pre SQL Server 2008 R2 Service Pack 1. Ďalšie informácie o možnostiach získania tohto balíka kumulatívnych aktualizácií nájdete v článku databázy Microsoft Knowledge Base, ktorý sa zobrazí po kliknutí na nasledovné číslo článku:

2703282 Kumulatívna aktualizácia balíka 7 pre SQL Server 2008 R2 Service Pack 1Poznámka: Pretože zostavy sú kumulatívne, každé nové vydanie opraviť obsahuje všetky rýchlych opráv a všetky opravy zabezpečenia, ktoré boli súčasťou predchádzajúceho SQL servera 2008 R2 opraviť uvoľnenia. Odporúčame, aby ste zvážili uplatnenie najnovších opráv, ktoré túto rýchlu opravu obsahujú. Ď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:

2567616 Zostavy SQL servera 2008 R2, ktoré boli vydané po vydaní SQL servera 2008 R2 Service Pack 1

SQL Server 2012

Oprava tohto problému bola prvýkrát vydaná v kumulatívnej aktualizácii 2 pre SQL Server 2012. Ďalšie informácie o tomto balíku kumulatívnych aktualizácií nájdete v článku databázy Microsoft Knowledge Base, ktorý sa zobrazí po kliknutí na nasledovné číslo článku:

2703275 Kumulatívna aktualizácia balíka 2 pre SQL Server 2012Poznámka: Pretože zostavy sú kumulatívne, každé nové vydanie opraviť obsahuje všetky rýchlych opráv a všetky opravy zabezpečenia, ktoré boli súčasťou predchádzajúceho SQL servera 2012 opraviť uvoľnenia. Spoločnosť Microsoft odporúča, aby ste zvážili uplatnenie najnovších opráv, ktoré túto rýchlu opravu obsahujú. Ď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:

2692828 Zostavy SQL servera 2012, ktoré boli vydané po vydaní SQL servera 2012 Ak chcete nainštalovať SQL Server 2012, musíte použiť rýchlu opravu SQL servera 2012.

SQL Server 2008 R2

Oprava tohto problému bola prvýkrát vydaná v kumulatívnej aktualizácii 13. Ďalšie informácie o možnostiach získania tohto balíka kumulatívnych aktualizácií pre SQL Server 2008 R2 nájdete v článku databázy Microsoft Knowledge Base, ktorý sa zobrazí po kliknutí na nasledovné číslo článku:

2679366 Kumulatívna aktualizácia balíka 13 pre SQL Server 2008 R2Poznámka: Pretože zostavy sú kumulatívne, každé nové vydanie opraviť obsahuje všetky rýchlych opráv a všetky opravy zabezpečenia, ktoré boli súčasťou predchádzajúceho SQL servera 2008 R2 opraviť uvoľnenia. Odporúčame, aby ste zvážili uplatnenie najnovších opráv, ktoré túto rýchlu opravu obsahujú. Ď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 servera 2008 R2, ktoré boli vydané po vydaní SQL servera 2008 R2Poznámka: Po nainštalovaní kumulatívnej aktualizácie by ste mali zapnúť príznak sledovania 4199, aby ste povolili opravu, ktorá je súčasťou tejto kumulatívnej aktualizácie, ak sú splnené tieto podmienky:

  • Plán dotazu má HORNÉho operátora nad vnorenou operátorom spojenia slučky (JOIN 1) na pravej strane iného operátora použiť/JOIN (spojenie 2).

  • Vonkajšia strana spojenia 1 má vonkajšiu odkaz na vonkajšiu stranu spojenia 2.

  • JOIN 1 používa predikát rovnosti na ľavej strane stĺpca, ktorý je jedinečný.

Príklad takéhoto dotazu sa zobrazí v časti príznaky. (Predpokladá sa, že v databáze existujú niektoré obmedzenia jedinečnosti.) Ak sú k dispozícii aj ďalšie dotazy, ktoré obsahujú TOP, OPTION (FAST N), IN alebo exist Operators a produkujú podobné príznaky, ale nezmestia sa k vzoru, ktorý je tu opísaný, zapnite príznak sledovania 4138.Upozornenie: Ak povolíte príznak sledovania 4138, výkon sa môže znížiť v prípade niektorých ďalších dotazov obsahujúcich TOP, OPTION (FAST N), IN alebo exist Operators. Príznak sledovania 4138 by sa mal použiť, len ak sú splnené nasledujúce podmienky:

  • Jeho vplyv na pomalé dotazy, ktoré sa týkajú týchto operátorov, sa potvrdí.

  • Neexistujú žiadne ďalšie užitočné alternatívne riešenia.

  • Nezistili sa žiadne regresie v iných dotazoch, ktoré obsahujú podobných operátorov.

Stav

Spoločnosť Microsoft potvrdzuje, že ide o problém v produktoch spoločnosti Microsoft, ktoré sú uvedené v tomto článku v časti Informácie v tomto článku sa týkajú nasledujúcich produktov.

Alternatívne riešenie

Ak chcete tento problém obísť, použite operátor ĽAVÉHO VONKAJŠIEho spojenia alebo ľubovoľný z niekoľkých tipov na OPTIMALIZÁCIU.

Potrebujete ďalšiu pomoc?

Chcete ďalšie možnosti?

Môžete preskúmať výhody predplatného, prehľadávať školiace kurzy, naučiť sa zabezpečiť svoje zariadenie a ešte oveľa viac.

Komunity pomôžu s kladením otázok a odpovedaním na ne, s poskytovaním pripomienok a so získavaním informácií od odborníkov s bohatými znalosťami.

Boli tieto informácie užitočné?

Aká je podľa vás jazyková kvalita textu?
Čo sa vám páčilo, prípadne čo nie?
Stlačením tlačidla Odoslať sa vaše pripomienky použijú na zlepšenie produktov a služieb spoločnosti Microsoft. Váš správca IT bude môcť tieto údaje zhromažďovať. Vyhlásenie o ochrane osobných údajov.

Ďakujeme za vaše pripomienky!

×