MSSQLSERVER_2814
Подробные сведения
Название продукта |
SQL Server |
Версия продукта |
10.0 |
Номер сборки продукта |
|
Идентификатор события |
2814 |
Источник события |
MSSQLSERVER |
Компонент |
SQLEngine |
Символьное имя |
PR_POSSIBLE_INFINITE_RECOMPILE |
Текст сообщения |
Обнаружена возможная бесконечная перекомпиляция для SQLHANDLE %hs, PlanHandle %hs, начиная со смещения %d до смещения %d. Причиной последней перекомпиляции было %d. |
Пояснение
Одна или несколько инструкций вызвали перекомпиляцию пакета запросов по крайней мере 50 раз. Необходимо исправить указанную инструкцию, чтобы избежать дальнейшей перекомпиляции.
В следующей таблице приводятся причины перекомпиляции.
Код причины |
Описание |
|---|---|
1 |
Изменение схемы |
2 |
Изменение статистики |
3 |
Отложенная компиляция |
4 |
Изменение параметра SET |
5 |
Изменение временной таблицы |
6 |
Изменение удаленного набора строк |
7 |
Изменение разрешений FOR BROWSE |
8 |
Изменение среды уведомлений о запросах |
9 |
Изменение секционированного представления |
10 |
Изменение параметров курсора |
11 |
Запрошено OPTION (RECOMPILE) |
Действия пользователя
Просмотрите инструкцию, вызывающую перекомпиляцию, запустив следующий запрос. Замените местозаполнители sql_handle, starting_offset, ending_offset и plan_handle значениями, указанными в сообщении об ошибке. Обратите внимание, что столбцы database_name и object_name будут пустыми для нерегламентированных и подготовленных инструкций Transact-SQL.
SELECT DB_NAME(st.dbid) AS database_name
, OBJECT_NAME(st.objectid) AS object_name
, st.text
FROM sys.dm_exec_query_stats AS qs
CROSS APPLY sys.dm_exec_sql_text (sql_handle) AS st
WHERE qs.statement_start_offset = starting_offset
AND qs.statement_end_offset = ending_offset
AND qs.plan_handle = plan_handle;
В зависимости от описания кода причины измените инструкцию, пакет или процедуру, чтобы избежать перекомпиляции. Например, хранимая процедура может содержать одну или несколько инструкций SET. Эти инструкции должны быть удалены из процедуры. Дополнительные примеры причин перекомпиляции и способов их устранения см. в разделе Компиляция пакета, повторная компиляция и проблемы кэширования плана в SQL Server 2005.
Если ошибка повторится, обратитесь в службу поддержки пользователей Майкрософт.