MSSQL Error 9100: Database engine encountered an unexpected error while executing query
- Клиентские сессии 1С аварийно завершаются с сообщением
Ошибка СУБД: Внутренняя ошибка ядра СУБД. - В журнале SQL Server Errorlog появляется запись
Error: 9100, Severity: 20, State: 1. Database engine encountered an unexpected error while executing query. - Генерируются дампы памяти SQL Server в каталоге
\LOG\SQLDump*.mdmp. - Сервер сбрасывает стек вызовов оптимизатора запросов (Query Optimizer Stack Overflow/Assertion Failure).
1. Анализ логов сбоя и дампов памяти
EXEC sp_readerrorlog 0, 1, '9100';
EXEC sp_readerrorlog 0, 1, 'Stack Dump';2. Проверка целостности базы данных на уровне физических структур
DBCC CHECKDB ('trade_base') WITH NO_INFOMSGS, ALL_ERRORMSGS;3. Сброс плана запроса и очистка процедурного кэша
USE trade_base;
GO
-- Очистка кэша планов для целевой базы
ALTER DATABASE SCOPED CONFIGURATION CLEAR PROCEDURE_CACHE;
-- Очистка буферного пула системных дескрипторов
DBCC FREESYSTEMCACHE ('ALL');4. Обновление статистики с полным сканированием
EXEC sp_updatestats;
-- Для проблемных таблиц регистров 1С:
UPDATE STATISTICS _AccumRgOpt WITH FULLSCAN, NORECOMPUTE;5. Корректировка параметров оптимизатора и флагов трассировки
Если сбой происходит при параллельном выполнении сложных запросов 1С, ограничьте MAXDOP и Cost Threshold:
EXEC sp_configure 'show advanced options', 1; RECONFIGURE;
EXEC sp_configure 'max degree of parallelism', 4; RECONFIGURE;
EXEC sp_configure 'cost threshold for parallelism', 50; RECONFIGURE; Частые вопросы (FAQ)
Является ли ошибка 9100 признаком аппаратного повреждения оперативной памяти?
В 40% случаев — да. Ошибка Severity 20 указывает на фатальное состояние. Рекомендуется проверить системный журнал Windows на наличие WHEA-Logger ошибок и выполнить проверку RAM сервера.
Как быстро локализовать проблемный запрос 1С, вызвавший падение 9100?
Откройте сгенерированный файл журнала SQLDumpXXXX.log в текстовом редакторе. В секции 'Input Buffer' будет содержаться точный текст T-SQL запроса, переданного сервером 1С.
Помогает ли установка последних Cumulative Update (CU) от Microsoft?
Да, ошибки серии 9100/ASSERTION почти всегда связаны с багами внутренней кодогенерации оптимизатора запросов в конкретных билдах MSSQL. Обновление до последнего CU обязательно.
Что делать, если DBCC CHECKDB выявил ошибки аллокации страниц?
Необходимо немедленно восстановить базу данных из резервной копии либо перевести базу в Single User Mode и выполнить DBCC CHECKDB (... , REPAIR_REBUILD).