MSSQL Ошибка 8624: Internal Query Processor Error cannot produce a query plan
- Крах компиляции запроса:
Msg 8624, Level 16, State 1: Internal Query Processor Error: The query processor could not produce a query plan. - В системный журнал SQL Server ErrorLog записывается стек вызова минидампа (Stack Dump).
- Сбой воспроизводится только на специфическом наборе параметров или при наличии фильтрованных индексов / вычисляемых колонок.
- Падение регламентных заданий обновления итогов и закрытия периода в 1С.
1. Установка последних Cumulative Updates (CU) для SQL Server
Ошибка 8624 почти всегда является признаком бага в оптимизаторе запросов Microsoft SQL Server, исправленного в накопительных пакетах обновлений:
-- Проверка текущей версии и сборки
SELECT @@VERSION AS SQLServerVersion, SERVERPROPERTY('ProductLevel') AS SP, SERVERPROPERTY('ProductUpdateLevel') AS CU;Установите последний доступный CU для вашей мажорной версии SQL Server (2016, 2019, 2022).
2. Временное переключение уровня совместимости базы данных (Compatibility Level)
Новый Cardinality Estimator может провоцировать сбои в старых версиях планов:
-- Временное понижение уровня совместимости для изоляции проблемы
ALTER DATABASE [DatabaseName] SET COMPATIBILITY_LEVEL = 130; -- SQL Server 2016
GO
-- Либо отключение нового оценщика мощности (Cardinality Estimation) через Scoped Config
ALTER DATABASE SCOPED CONFIGURATION SET LEGACY_CARDINALITY_ESTIMATION = ON;3. Изоляция запроса и упрощение вычисляемых полей
-- Отключение оптимизации агрегатов через хинт
SELECT * FROM dbo._AccumRg123
OPTION (QUERYTRACEON 4199, OPTIMIZE FOR UNKNOWN);4. Перестроение индексов и системных представлений
-- Проверка на логическую поврежденность системных метаданных
DBCC CHECKCONSTRAINTS WITH ALL_CONSTRAINTS;
ALTER INDEX ALL ON dbo._Document123 REBUILD; Частые вопросы (FAQ)
Чем ошибка 8624 отличается от 8623?
Ошибка 8623 возникает, когда запрос слишком сложный и исчерпаны лимиты ресурсов оптимизатора. Ошибка 8624 — это критический внутренний сбой (assertion failure / unhandled bug) логики самого ядра компилятора запросов.
Генерирует ли ошибка 8624 файл .mdmp на диске?
Да, SQL Server обычно генерирует дамп памяти в каталоге LOG (SQLDumpXXXX.txt и .mdmp). Его можно отправить в поддержку Microsoft или открыть через WinDbg для анализа сбойной функции ядра.
Помогает ли перезапуск службы SQL Server при ошибке 8624?
Нет, если запрос и статистика остаются неизменными, повторное выполнение запроса с теми же параметрами снова вызовет ошибку 8624.
Как быстро обойти падение в 1С без обновления всего сервера SQL?
Перепишите текст проблемного запроса в конфигураторе (разбейте сложные подзапросы, избавьтесь от вычисляемых функций внутри секции ГДЕ) либо используйте расширения конфигурации.