Преминаване към основното съдържание
Поддръжка
Влизане с Microsoft
Влезте или създайте акаунт.
Здравейте,
Изберете друг акаунт.
Имате няколко акаунта
Изберете акаунта, с който искате да влезете.

Microsoft разпространява Microsoft SQL Server 2008 Service Pack 1 (SP1) или SQL 2008 R2 поправя като един файл за изтегляне. Тъй като корекциите са кумулативни, всяка нова версия съдържа всички актуални корекции и всички корекции на защитата, които са били включени в предишния SQL Server 2008 SP1 или SQL 2008 R2 Fix Release.

Симптоми

Обмислете следния сценарий:

  • В Microsoft SQL Server 2008 или SQL Server 2008 R2 изпълните заявка за конкретна колона в таблица, която има много редове. Заявката съдържа предикат в клауза WHERE.

  • Изразът, който използвате за функцията съдържа, съдържа дума. Думата се показва в някои колони, които са включени в индекс на пълен текст в таблицата.

В този случай заявката отнема много време за съставяне. Например този проблем може да възникне, когато изпълните следната заявка:

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

Забележки

  • Приемете, че ". com" се появява в някои колони, които са включени в индекс на пълен текст в таблицата.

  • Можете да проследите времето за съставяне на вашата заявка, за да определите дали се натъквате на този проблем. За подробни инструкции как да следите времето за съставяне вижте секцията "допълнителна информация".

Причина

Този проблем възниква поради грешка в логиката на оценка на Кардиналност за индекси с пълен текст. В този случай е извършено сканиране на множество колони, които съдържат често срещана дума, преди да се стесни обхватът на търсене за очакваните колони.

Решение

Информация за сборна актуализация

SQL Server 2008 Service Pack 2

Корекцията за този проблем е издадена за първи път в кумулативната актуализация 4 за SQL Server 2008 Service Pack 2. За повече информация относно този пакет с кумулативна актуализация щракнете върху следния номер на статия, за да видите статията в базата знания на Microsoft:

2527180 Кумулативна актуализация на пакета 4 за SQL Server 2008 Service Pack 2Забележка Тъй като компилациите са кумулативни, всяко ново издание за корекция съдържа всички актуални корекции и всички корекции на защитата, които са били включени при предишното издание на SQL Server 2008 Fix. Microsoft препоръчва да обмислите прилагането на най-новото съобщение за корекция, което съдържа тази спешна корекция. За допълнителна информация щракнете върху следния номер на статия, за да прегледате статията в базата знания на Microsoft:

2402659 SQL Server 2008 изгражда, които са издадени след инсталирането на SQL Server 2008 Service Pack 2 Спешните корекции за Microsoft SQL Server 2008 се създават за определени сервизни пакети на SQL Server. Трябва да приложите актуална корекция за SQL Server 2008 Service Pack 2 към инсталация на SQL Server 2008 Service Pack 2. По подразбиране всяка актуална корекция, която се предоставя в сервизния пакет на SQL Server, е включена в следващия сервизен пакет на SQL Server.Корекцията за този проблем е издадена за първи път в сборна актуализация 13. За повече информация как да получите тази кумулативна актуализация на пакета за SQL Server 2008 SP1, щракнете върху следния номер на статия, за да видите статията в базата знания на Microsoft:

2497673 Кумулативна актуализация на пакета 13 за SQL Server 2008 Service Pack 1 Забележка Тъй като компилациите са кумулативни, всяко ново съобщение за корекция съдържа всички поправки и всички корекции на защитата, които са били включени в предишното издание на SQL Server 2008 SP1. Препоръчваме ви да обмислите прилагането на най-новото съобщение за корекция, което съдържа тази спешна корекция. За допълнителна информация щракнете върху следния номер на статия, за да прегледате статията в базата знания на Microsoft:

970365 SQL Server 2008 изгражда, които са издадени след SQL Server 2008 Service Pack 1 е издадена

SQL Server 2008 R2 сервизен пакет 1

Корекцията за този проблем е издадена за първи път в сборна актуализация 1 за SQL Server 2008 R2 Service Pack 1. За повече информация как да получите тази сборна актуализация, щракнете върху следния номер на статия, за да видите статията в базата знания на Microsoft:

2544793 Кумулативна актуализация на пакета 1 за SQL Server 2008 R2 Service Pack 1Забележка Тъй като компилациите са кумулативни, всяко ново издание за корекция съдържа всички поправки и всички корекции на защитата, които са били включени при предишното издание на SQL Server 2008 R2. Препоръчваме ви да обмислите прилагането на най-новото съобщение за корекция, което съдържа тази спешна корекция. За допълнителна информация щракнете върху следния номер на статия, за да прегледате статията в базата знания на Microsoft:

2567616 SQL Server 2008 R2 изгражда, които са издадени след SQL Server 2008 R2 Service Pack 1 е издадена

SQL Server 2008 R2

Корекцията за този проблем е издадена за първи път в сборна актуализация 7. За повече информация как да получите тази кумулативна актуализация на пакета за SQL Server 2008 R2, щракнете върху следния номер на статия, за да видите статията в базата знания на Microsoft:

2507770 Кумулативна актуализация на пакета 7 за SQL Server 2008 R2 Забележка Тъй като компилациите са кумулативни, всяко ново издание за корекция съдържа всички поправки и всички корекции на защитата, които са били включени при предишното издание на SQL Server 2008 R2. Препоръчваме ви да обмислите прилагането на най-новото съобщение за корекция, което съдържа тази спешна корекция. За допълнителна информация щракнете върху следния номер на статия, за да прегледате статията в базата знания на Microsoft:

981356 SQL Server 2008 R2, които са издадени след издаването на SQL Server 2008 R2

Състоянието

Microsoft потвърди, че това е проблем в продуктите на Microsoft, които са посочени в секцията "важи за".

Заобиколно решение

За да решите проблема по заобиколен начин, използвайте един от следните методи:

  • Използвайте *, за да включите всички колони в търсенето вместо с една колона. Това променя броя на редовете, които са действително оценени, преди Интегрираният пълен текст да събира своята оценка на кардиналност. Например изпълнете следната заявка:

    SELECT count(*) FROM dbo.MyLargeTabel where CONTAINS (*, '"test@contoso.com"')
  • Направете така, че често срещаната дума да спре да използва командата за промяна на пълния текст на STOPLIST. За повече информация относно командата "промяна на пълен текст" за STOPLIST за преговаряне – SQL посетете следния уеб сайт на Microsoft Developer Network (MSDN): Обща информация за КОМАНДАТА алтер на пълен текст STOPLIST за преговаряне – SQL

Повече информация

За да проследите времето за съставяне на заявката, изпълнете следните стъпки:

  1. Заснемете SQL профили след като изпълните заявката. За да направите това, следете TSQL: BatchCompleted и TSQL: StmtCompleted Events или RPC: попълнен и SP: StmtCompleted събития.

  2. Обърнете внимание на пакетното време на ПРОЦЕСОРА и ПРОЦЕСОРНО време на отчета.

  3. Изваждане на време на ПРОЦЕСОРА за извлечение от пакетното време на ПРОЦЕСОРА. Резултатът указва времето на ПРОЦЕСОРА, което е взето за анализиране и съставяне на партидата.

За повече информация как да използвате съдържа предикат за преговаряне – SQL, посетете следния уеб сайт на Microsoft за развитие на мрежата (MSDN):

Как да използвате съдържа предикат за преговаряне – SQL

Нуждаете ли се от още помощ?

Искате ли още опции?

Разгледайте ползите от абонамента, прегледайте курсовете за обучение, научете как да защитите устройството си и още.

Общностите ви помагат да задавате и отговаряте на въпроси, да давате обратна връзка и да получавате информация от експерти с богати знания.

Беше ли полезна тази информация?

Доколко сте доволни от качеството на езика?
Какво е повлияло на вашия потребителски опит?
Като натиснете „Подаване“, вашата обратна връзка ще се използва за подобряване на продуктите и услугите на Microsoft. Вашият ИТ администратор ще може да събира тези данни. Декларация за поверителност.

Благодарим ви за обратната връзка!

×