Корпорация Майкрософт распространяет исправления Microsoft SQL Server 2008 в виде одного загружаемого файла. Поскольку исправления являются накопительными, каждый новый выпуск содержит все исправления и исправления для системы безопасности, которые были включены в предыдущий выпуск исправления SQL Server 2008. Корпорация Майкрософт распространяет исправления Microsoft SQL Server 2008 или SQL Server 2008 R2 в виде одного загружаемого файла. Поскольку исправления являются накопительными, каждый новый выпуск содержит все исправления и исправления для системы безопасности, которые были включены в предыдущий выпуск исправления SQL Server 2008 или SQL Server 2008 R2.
Проблема
Рассмотрим следующий сценарий.
У вас есть полнотекстовый поисковый запрос, в котором используется функция CONTAINSTABLE вместе со многими предикатами OR и AND в условии в Microsoft SQL Server 2008 или SQL Server 2008 R2. Например, у вас есть следующие операции 50 И: Объявление @Keywords varchar(4000) = NULL
установить @Keywords= N'((((((((((((((((((((((((((((((((((((((((((((((((((((
("TOKarchitect" ИЛИ "architectural")
И ("TOKинженер" ИЛИ "инженер"))
И "gineer") И ("TOKmechanical" OR "Mechanical"))
И ("TOKинженер" ИЛИ "Инженерия"))
И ("TOKelectronic" ИЛИ "Electronics")) И ("TOKинженер" ИЛИ "Инженер")) И ("TOKelectronic" ИЛИ "Электроника")) И ("TOKинженер" ИЛИ "Инженер")) И ("TOKelectric" ИЛИ "Инженер")) И ("TOKинженер" ИЛИ "Инженер")) И ("TOKelectric" ИЛИ "Электрика")) И ("TOKинженер" ИЛИ "Инженер")) И ("TOKcontrol" ИЛИ "Control")) И ("TOKsystem" ИЛИ "Системы")) И ("TOKинженер" ИЛИ "Инженер")) И ("TOKинженер" ИЛИ "Инженер")) И ("TOKproject" ИЛИ "Project")) И ("TOKmanager" ИЛИ "Manager")) И ("TOKengineer" OR "Control")) И ("TOKengineer" OR "Systems")) И ("TOKengineer" ИЛИ "Engineer")) И ("TOKproject" ИЛИ "Project")) И ("TOKmanager" OR "Manager")) И ("TOKengineer" OR "Control")) И ("TOKengineer" OR "Systems")) И ("TOKengineer" OR "Engineer")) И ("TOKengineer" OR "Engineer")) "Инжиниринг")) И "Схема") И ("ТОКпроизводство" ИЛИ "Производство")) И ("ТОКинженер" ИЛИ "Инженер")) И ("ТОКметаллург" ИЛИ "Металлург")) И ("ТОКметаллург" ИЛИ "Металлург")) И ("ТОКметаллург" ИЛИ "Металлург")) И ("ТОКпроцесс" ИЛИ "Процесс")) И ("ТОКехнология" ИЛИ "Технология")) И ("ТОКпродукт" ИЛИ "Производство")) И ("ТОКинженер" ИЛИ "Инженер")) И ("ТОКуальность" ИЛИ "Качество")) И ("ТОКинженер" ИЛИ "Инженер")) И ("ТОКинженер" ИЛИ "Инженер")) И ("ТОКуальность" ИЛИ "Качество")) И ("ТОКуализация" ИЛИ "Качество")) И ("ТОКуправление" ИЛИ "Контроль")) И ("ТОКинженер" ИЛИ "Качество")) "Инженер")) И "Мехатроника") И ("TOKcivil" ИЛИ "Civil")) И ("TOKинженер" ИЛИ "Инженер")) И ("TOKcivil" ИЛИ "Инженер")) И ("TOKинженер" ИЛИ "Инженер")) И ("TOKdesign" ИЛИ "Проектирование")) И ("TOKинженер" ИЛИ "Проектирование")) И ("TOKdesign" ИЛИ "Проектирование")) И ("TOKинженер" ИЛИ "Инженер")) И ("TOKgraduate" ИЛИ "Инженер")) И ("TOKgraduate" ИЛИ "Инженер")) И ("TOKинженер" ИЛИ "Инженер")) И ("TOKgraduate" ИЛИ "Инженер")) И ("TOKинженер" ИЛИ "Инженер")) И ("TOKинженер" ИЛИ "Инженер")) И ("TOKgraduate" ИЛИ "Инженер")) И ("TOKgraduate" ИЛИ "Инженер")) И ("TOKgraduate" ИЛИ "Инженер")) И ("TOKgraduate" ИЛИ "Инженер")) И ("TOKgraduate" ИЛИ "Инженер")) И ("TOKgraduate" ИЛИ "Инженер")) И ("TOKgraduate" ИЛИ "Инженер")) И ("TOKgraduate" ИЛИ "Инженер")) И ("TOKgraduate" ИЛИ "Инженер")) И ("TO OR "Graduate")) AND ") ANDNOT (") AND ("TOKRecruitment" OR "Recruitment")) AND ("TOKconsultant" OR "consultant")) AND ("TOKtrainee" OR "trainee")) AND ("TOKRecruitment" OR "recruitment"))'select * from CONTAINSTABLE(test_table, *, @keywords, 1000)
Вы выполняете запрос.
В этом случае может возникнуть ошибка "Non-yielding Scheduler". Кроме того, мини-файл дампа создается в папке журнала приложений SQL Server 2008 или SQL Server 2008 R2, а следующая ошибка регистрируется в файле журнала ошибок SQL Server:
Примечание
<Сервер меток> времени с использованием «dbghelp.dll» версии «4.0.5»
<Сервер меток> времени ***Не удалось получить контекст потока для spid 0
<Сервер меток> времени *
*******************************************************************************
<Сервер меток> времени *
<Сервер меток> времени * НАЧАЛО ДАМПА СТЕКА:
<Сервер меток> времени * <Time> spid <SPID>
<Сервер меток> времени *
<Сервер меток> времени * Планировщик, не возвращающий
<Сервер меток> времени *
<Сервер меток> времени *
*******************************************************************************
<Подпись стека сервера метки> времени для дампа 0x000000000000030D
<Сервер меток> времени Внешний процесс дампа Код возврата 0x20000001. Внешний процесс дампа не вернул ошибок.
<Time Stamp> Server Process 0:0:0 (0xf94) Worker 0x00000000817481A0, по-видимому, не уступает при планировщике 0. Время создания цепочки: 12925321224306. Приблизительно ЦП потока Используется: ядро 62 мс, пользователь 75187 мс. Коэффициент использования технологического процесса 98%. Простои системы 0 %. Интервал: 76403 мс.
<Time Stamp> Server Process 0:0:0 (0xf94) Worker 0x00000000817481A0, по-видимому, не уступает при планировщике 0. Время создания цепочки: 12925321224306. Приблизительно ЦП потока Используется: ядро 125 мс, пользователь 145250 мс. Коэффициент использования технологического процесса 98%. Простои системы 0 %. Интервал: 148417 мс
<Time Stamp> Server Process 0:0:0 (0xf94) Worker 0x00000000817481A0, по-видимому, не уступает при планировщике 0. Время создания цепочки: 12925321224306. Приблизительно ЦП потока Используется: ядро 171 мс, пользователь 205515 мс. Коэффициент использования технологического процесса 98%. Простои системы 0 %. Интервал: 209729 мс
<Time Stamp> Server Process 0:0:0 (0xf94) Worker 0x00000000817481A0, по-видимому, не уступает при планировщике 0. Время создания цепочки: 12925321224306. Приблизительно ЦП потока Используется: ядро 218 мс, пользователь 266343 мс. Коэффициент использования технологического процесса 98%. Простои системы 0 %. Интервал: 271588 мс
<Time Stamp> Server Process 0:0:0 (0xf94) Worker 0x00000000817481A0, по-видимому, не уступает при планировщике 0. Время создания цепочки: 12925321224306. Приблизительно ЦП потока Используется: ядро 234 мс, пользователь 325156 мс. Коэффициент использования технологического процесса 97%. Простои системы 0 %. Интервал: 333671 мс
<Time Stamp> Server Process 0:0:0 (0xf94) Worker 0x00000000817481A0, по-видимому, не уступает при планировщике 0. Время создания цепочки: 12925321224306. Приблизительно ЦП потока Используется: ядро 296 мс, пользователь 386000 мс. Коэффициент использования технологического процесса 97%. Простои системы 0 %. Интервал: 396370 мс.
Причина
Эта проблема возникает из-за того, что SQL Server 2008 или SQL Server 2008 R2 неправильно выпускает планировщик.
Решение
Сведения о накопительном пакете обновления
SQL Server 2008 R2
Исправление этой проблемы впервые выпущено в накопительном пакете обновления 5. Для получения дополнительной информации о том, как получить этот накопительный пакет обновления для SQL Server 2008 R2, откройте статью со следующим номером в базе знаний Майкрософт:
Накопительный пакет обновления 2438347 5 для SQL Server 2008 R2 Примечание. Поскольку сборки являются накопительными, каждый новый выпуск исправления содержит все исправления и исправления для системы безопасности, которые вошли в предыдущий выпуск исправления SQL Server 2008 R2. Рекомендуется рассмотреть возможность применения последнего выпуска исправления, содержащего это исправление. Для просмотра статьи в базе знаний Майкрософт щелкните следующий номер статьи:
981356 Сборки SQL Server 2008 R2, выпущенные после выпуска SQL Server 2008 R2
SQL Server 2008 с пакетом обновления 1 (SP1)
Исправление для этой проблемы было впервые выпущено в накопительном пакете обновления 10 для SQL Server 2008 с пакетом обновления 1. Дополнительные сведения об этом накопительном пакете обновления см. в следующей статье базы знаний Майкрософт:
2279604 Накопительный пакет обновления 10 для SQL Server 2008 с пакетом обновления 1Примечание Поскольку сборки являются накопительными, каждый новый выпуск исправления содержит все исправления и исправления для системы безопасности, которые были включены в предыдущий выпуск исправления SQL Server 2008 г. Корпорация Майкрософт рекомендует рассмотреть возможность применения последнего выпуска исправления, содержащего это исправление. Для просмотра статьи в базе знаний Майкрософт щелкните следующий номер статьи:
970365 Сборки SQL Server 2008 г., выпущенные после выпуска SQL Server 2008 с пакетом обновления 1 (SP1) Исправления для Microsoft SQL Server 2008 предназначены для определенных пакетов обновления SQL Server. Необходимо установить исправление для SQL Server 2008 с пакетом обновления 1 (SP1) для установки SQL Server 2008 с пакетом обновления 1. По умолчанию все исправления, предоставляемые в пакете обновления для SQL Server, входят в следующий пакет обновления для SQL Server.
SQL Server 2008 с пакетом обновления 2 (SP2)
Исправление для этой проблемы было впервые выпущено в накопительном пакете обновления 1 для SQL Server 2008 с пакетом обновления 2. Дополнительные сведения об этом накопительном пакете обновления см. в следующей статье базы знаний Майкрософт:
2289254 Накопительный пакет обновления 1 для SQL Server 2008 с пакетом обновления 2 (SP2) Так как сборки являются накопительными, каждый новый выпуск исправления содержит все исправления и исправления для системы безопасности, которые вошли в предыдущий выпуск исправления SQL Server 2008 г. Рекомендуется рассмотреть возможность применения последнего выпуска исправления, содержащего это исправление. Для просмотра статьи в базе знаний Майкрософт щелкните следующий номер статьи:
2402659 Сборки SQL Server 2008 г., выпущенные после выпуска SQL Server 2008 с пакетом обновления 2 (SP2)
Временное решение
Чтобы обойти эту проблему, используйте полнотекстовый тезаурус поиска для определения синонимов сказуемого.
Для этого используйте функцию FORMSOF вместе со значением ТЕЗАУРУС, а затем добавьте все ключевые слова в качестве параметров.
Для примера, описанного в разделе "Симптомы", ниже приведена обновленная версия примера запроса: Выберите * из test_table, где Содержит(*,'ФОРМЫИЗ (ТЕЗАУРУС,"архитектурный","инженер","механик","инженер","инженер","электроника","инженер","электротехника","управление","системы","проект","менеджер","производство","металлургия","металлург","процесс","проектирование","технология","производство","качество","контроль","гражданский","выпускник","подбор персонала","консультант","стажер" ,"вербовка")')
Состояние
Корпорация Майкрософт подтвердила, что это проблема продуктов Microsoft, перечисленных в разделе «Относится к».
Ссылки
Дополнительные сведения о функции CONTAINSTABLE см. на следующем веб-сайте Microsoft Developer Network (MSDN):
Общие сведения о функции CONTAINSTABLE Дополнительные сведения о модели добавочного обслуживания для SQL Server см. в следующей статье базы знаний Майкрософт:
935897 Команда SQL Server предоставляет модель добавочного обслуживания для предоставления исправлений для обнаруженных проблем
Дополнительные сведения о схеме именования для обновлений SQL Server см. в следующей статье базы знаний Майкрософт:
822499 Новая схема именования пакетов обновления программного обеспечения Microsoft SQL Server Дополнительные сведения о терминологии обновления программного обеспечения см. в следующей статье базы знаний Майкрософт:
824684 Стандартные термины, используемые при описании обновлений программного обеспечения Майкрософт