Přihlásit se pomocí účtu Microsoft
Přihlaste se nebo si vytvořte účet.
Dobrý den,
Vyberte jiný účet.
Máte více účtů.
Zvolte účet, pomocí kterého se chcete přihlásit.

Společnost Microsoft distribuuje Microsoft SQL Server 2008 Service Pack 1 (SP1) nebo SQL 2008 R2 opravy jako jeden soubor ke stažení. Protože jsou opravy kumulativní, každá nová verze obsahuje všechny opravy hotfix a všechny opravy zabezpečení, které byly součástí předchozí verze SQL serveru 2008 SP1 nebo SQL 2008 R2 fix release.

Příznaky

Zvažte následující scénář:

  • V Microsoft SQL serveru 2008 nebo SQL serveru 2008 R2 spustíte dotaz na určitý sloupec v tabulce, která obsahuje mnoho řádků. Dotaz má predikát CONTAINS v klauzuli WHERE.

  • Termín použitý pro predikát CONTAINS obsahuje slovo. Slovo se objeví v některých sloupcích, které jsou zahrnuté v fulltextovém indexu tabulky.

V tomto scénáři trvá kompilace dotazu dlouho. K tomuto problému může dojít například při spuštění následujícího dotazu:

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

Poznámky:

  • Předpokládejme, že v některých sloupcích zahrnutých v fulltextovém indexu tabulky se zobrazuje ". com".

  • Čas kompilace dotazu můžete sledovat, abyste zjistili, jestli se tento problém týká. Podrobné pokyny k sledování času kompilace najdete v části Další informace.

Příčina

K tomuto problému dochází kvůli chybě v logice odhadu mohutnosti pro fulltextové indexy. V tomto případě se prohledá víc sloupců, které obsahují často se vyskytující slovo, před zúžením rozsahu hledání očekávaných sloupců.

Řešení

Informace o kumulativní aktualizaci

SQL Server 2008 Service Pack 2

Oprava pro tento problém byla poprvé vydána v kumulativní aktualizaci 4 pro SQL Server 2008 Service Pack 2. Další informace o tomto kumulativním balíčku aktualizací najdete v následujícím článku znalostní báze Microsoft Knowledge Base:

2527180 Kumulativní aktualizace 4 pro SQL Server 2008 Service Pack 2Poznámka Vzhledem k tomu, že buildy jsou kumulativní, každá nová oprava obsahuje všechny opravy hotfix a všechny opravy zabezpečení, které byly součástí předchozího SQL serveru 2008 Oprava. Společnost Microsoft doporučuje zvážit použití nejnovější opravy, která obsahuje tuto opravu hotfix. Další informace naleznete v následujícím článku znalostní báze Microsoft Knowledge Base:

2402659 Buildy SQL Server 2008, které byly vydány po vydání SQL Server 2008 Service Pack 2 Pro určité aktualizace SQL serveru jsou vytvořené opravy hotfix Microsoft SQL serveru 2008. Na instalaci SQL serveru 2008 Service Pack 2 musíte použít opravu hotfix systému SQL Server 2008 Service Pack 2. Ve výchozím nastavení je každá oprava hotfix, která je součástí aktualizace Service Pack systému SQL Server, součástí další aktualizace Service Pack systému SQL Server.Oprava pro tento problém byla poprvé vydána v kumulativní aktualizaci 13. Další informace o tom, jak získat tento kumulativní balíček aktualizací pro SQL Server 2008 SP1, najdete v následujícím článku znalostní báze Microsoft Knowledge Base:

2497673 Kumulativní balíček aktualizací 13 pro SQL Server 2008 Service Pack 1 Poznámka Vzhledem k tomu, že buildy jsou kumulativní, každá nová oprava obsahuje všechny opravy hotfix a všechny opravy zabezpečení, které byly součástí předchozí verze aktualizace SQL Server 2008 SP1. Doporučujeme zvážit použití nejnovější opravy, která obsahuje tuto opravu hotfix. Další informace naleznete v následujícím článku znalostní báze Microsoft Knowledge Base:

970365 Buildy SQL Server 2008, které byly vydány po vydání SQL Server 2008 Service Pack 1

SQL Server 2008 R2 Service Pack 1

Oprava pro tento problém byla poprvé vydána v kumulativní aktualizaci 1 pro SQL Server 2008 R2 Service Pack 1. Další informace o tom, jak získat tento kumulativní balíček aktualizací, najdete v následujícím článku znalostní báze Microsoft Knowledge Base:

2544793 Kumulativní aktualizace 1 pro SQL Server 2008 R2 Service Pack 1Poznámka Vzhledem k tomu, že buildy jsou kumulativní, každá nová oprava obsahuje všechny opravy hotfix a všechny opravy zabezpečení, které byly součástí předchozího SQL serveru 2008 R2 fix release. Doporučujeme zvážit použití nejnovější opravy, která obsahuje tuto opravu hotfix. Další informace naleznete v následujícím článku znalostní báze Microsoft Knowledge Base:

2567616 Sestavení SQL Server 2008 R2, která byla vydána po SQL serveru 2008 R2 Service Pack 1, byla vydána

SQL Server 2008 R2

Oprava pro tento problém byla poprvé vydána v kumulativní aktualizaci 7. Další informace o tom, jak získat tento kumulativní balíček aktualizací pro SQL Server 2008 R2, najdete v následujícím článku znalostní báze Microsoft Knowledge Base:

2507770 Kumulativní balíček aktualizací 7 pro SQL Server 2008 R2 Poznámka Vzhledem k tomu, že buildy jsou kumulativní, každá nová oprava obsahuje všechny opravy hotfix a všechny opravy zabezpečení, které byly součástí předchozího SQL serveru 2008 R2 fix release. Doporučujeme zvážit použití nejnovější opravy, která obsahuje tuto opravu hotfix. Další informace naleznete v následujícím článku znalostní báze Microsoft Knowledge Base:

981356 Buildy SQL Server 2008 R2 vydaná po vydání SQL serveru 2008 R2

Stav

Společnost Microsoft potvrzuje, že se jedná o problém v produktech této společnosti, které jsou uvedeny v části Informace v tomto článku jsou určeny pro produkt.

Alternativní řešení

Jako alternativní řešení použijte jednu z následujících metod:

  • Pomocí * zahrnete do hledání všechny sloupce místo jednoho sloupce. Tím se změní počet řádků, které jsou ve skutečnosti vyhodnocovány před tím, než integrovaný úplný text zkompiluje jeho odhad mohutnosti. Spusťte například následující dotaz:

    SELECT count(*) FROM dbo.MyLargeTabel where CONTAINS (*, '"test@contoso.com"')
  • Pomocí příkazu ALTER FULLTEXT STOPSLOV vytvořte slovo, ve kterém se bude opakovaně zobrazovat slovo. Další informace o příkazu ALTER FULLTEXTu STOPSLOV pro jazyk Transact-SQL najdete na následujícím webu MSDN (Microsoft Developer Network): Obecné informace o příkazu ALTER fulltextu stopslov pro Transact-SQL .

Další informace

Pokud chcete sledovat dobu kompilace dotazu, postupujte takto:

  1. Při spuštění dotazu Zachyťte trasování profileru SQL. Chcete-li to udělat, Sledujte události TSQL: BatchCompleted a TSQL: StmtCompleted nebo události RPC: Completed a SP: StmtCompleted.

  2. Všimněte si času procesoru dávky a prohlášení o čase procesoru.

  3. Odečtěte čas procesoru od času procesoru dávky. Výsledek označuje čas procesoru, který je potřeba k analýze a zkompilování dávky.

Další informace o použití predikátu for Transact-SQL najdete na následujícím webu služby MSDN (Microsoft Development Network):

Použití predikátu CONTAINS pro Transact-SQL

Potřebujete další pomoc?

Chcete další možnosti?

Prozkoumejte výhody předplatného, projděte si školicí kurzy, zjistěte, jak zabezpečit své zařízení a mnohem více.

Komunity vám pomohou klást otázky a odpovídat na ně, poskytovat zpětnou vazbu a vyslechnout odborníky s bohatými znalostmi.

Byly tyto informace užitečné?

Jak jste spokojeni s kvalitou jazyka?
Co ovlivnilo váš názor?
Po stisknutí tlačítka pro odeslání se vaše zpětná vazba použije k vylepšování produktů a služeb Microsoftu. Váš správce IT bude moci tato data shromažďovat. Prohlášení o zásadách ochrany osobních údajů.

Děkujeme vám za zpětnou vazbu.

×