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ť.

Microsoft distribuuje Microsoft SQL Server 2008 Service Pack 1 (SP1) alebo SQL 2008 R2 opravy ako jeden súbor na stiahnutie. Pretože opravy sú kumulatívne, každé nové vydanie obsahuje všetky rýchlych opráv a všetky opravy zabezpečenia, ktoré boli súčasťou predchádzajúceho SQL servera 2008 SP1 alebo SQL 2008 R2 opraviť uvoľnenia.

Príznaky

Zoberme si nasledujúcu situáciu:

  • V programe Microsoft SQL Server 2008 alebo SQL Server 2008 R2 spustíte dotaz proti konkrétnemu stĺpcu v tabuľke s viacerými riadkami. Dotaz obsahuje predikát v klauzule WHERE.

  • Výraz, ktorý použijete pre obsahuje predikát, obsahuje slovo. Word sa zobrazí v niektorých stĺpcoch, ktoré sú zahrnuté v celotextového indexe tabuľky.

V tomto scenári dotaz trvá príliš dlho na zostavenie. Tento problém sa môže vyskytnúť napríklad pri spustení nasledujúceho dotazu:

SELECT count(*)FROM dbo.MyLargeTable whereCONTAINS (email_address, '"name@contoso.com"')

Poznámky:

  • Predpokladajme, že v niektorých stĺpcoch, ktoré sú zahrnuté do indexu celotextového tabuľky, sa zobrazí text ". com".

  • Ak chcete zistiť, či sa tento problém vyskytne, môžete sledovať dobu kompilácie dotazu. Podrobné pokyny na sledovanie času kompilácie nájdete v časti Ďalšie informácie.

Príčina

Tento problém sa vyskytuje z dôvodu chyby v logike odhadu n pre celotextové indexy. V tomto prípade sa pred zúžením rozsahu vyhľadávania pre očakávané stĺpce vykoná kontrola s viacerými stĺpcami, ktoré obsahujú často vyskytujúce sa slovo.

Riešenie

Kumulatívna aktualizácia informácií

SQL Server 2008 Service Pack 2

Oprava tohto problému bola prvýkrát vydaná v kumulatívnej aktualizácii 4 pre SQL Server 2008 Service Pack 2. Ď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:

2527180 Kumulatívna aktualizácia balíka 4 pre SQL Server 2008 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 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:

2402659 Zostavy SQL servera 2008, ktoré boli vydané po vydaní SQL servera 2008 Service Pack 2 Microsoft SQL Server 2008 rýchlych opráv sú vytvorené pre konkrétne SQL Server Service Pack. Ak chcete nainštalovať SQL Server 2008 Service Pack 2, musíte použiť rýchlu opravu SQL servera 2008 Service Pack 2. Na základe predvoleného nastavenia je každá rýchla oprava, ktorá je k dispozícii v balíku SQL Server Service Pack, zahrnutá v ďalšej službe SQL Server Service Pack.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 SP1 nájdete v článku databázy Microsoft Knowledge Base, ktorý sa zobrazí po kliknutí na nasledovné číslo článku:

2497673 Kumulatívna aktualizácia balíka 13 pre SQL Server 2008 Service Pack 1 Pozná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 SP1 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:

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

SQL Server 2008 R2 Service Pack 1

Oprava tohto problému bola prvýkrát vydaná v kumulatívnej aktualizácii 1 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:

2544793 Kumulatívna aktualizácia balíka 1 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 2008 R2

Oprava tohto problému bola prvýkrát vydaná v kumulatívnej aktualizácii 7. Ď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:

2507770 Kumulatívna aktualizácia balíka 7 pre SQL Server 2008 R2 Pozná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 R2

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 obísť tento problém, použite jednu z uvedených metód:

  • Použitie * Ak chcete zahrnúť všetky stĺpce vo vyhľadávaní namiesto jedného stĺpca. Tým sa zmení počet riadkov, ktoré sa skutočne vyhodnotia pred úplným integrovaným textom, ktorý zostavuje odhad n. Spustite napríklad nasledujúci dotaz:

    SELECT count(*) FROM dbo.MyLargeTabel where CONTAINS (*, '"test@contoso.com"')
  • Vykonajte Word s často sa vyskytujúcich slovom zastavenia pomocou príkazu ALTER fulltextové STOPLIST. Ďalšie informácie o príkaze ALTER fulltextové STOPLIST pre Transact-SQL nájdete na nasledujúcej webovej lokalite Microsoft Developer Network (MSDN): Všeobecné informácie o príkaze Alter fulltextové STOPLIST pre Transact-SQL

Ďalšie informácie

Ak chcete sledovať dobu kompilácie dotazu, postupujte podľa týchto krokov:

  1. Zachyťte sledovanie SQL Profiler pri spustení dotazu. Ak to chcete urobiť, Sledujte TSQL: BatchCompleted a TSQL: StmtCompleted udalosti alebo RPC: dokončené a SP: StmtCompleted udalosti.

  2. Všimnite si dobu dávkového PROCESORA a výkazu CPU.

  3. Odpočítanie výkazu času CPU od času dávkového PROCESORA. Výsledkom je časový úsek PROCESORA, ktorý sa má vykonať na analýzu a zostavenie dávky.

Ďalšie informácie o tom, ako používať obsahuje predikát pre Transact-SQL, nájdete na nasledujúcej webovej lokalite Microsoft Development Network (MSDN):

Používanie predikátu obsahuje pre Transact-SQL

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!

×