Диагностика медленных запросов в 1С: от технологического журнала до плана в SSMS

MaksimKI 9 минут назад Диагностика медленных запросов в 1С: от технологического журнала до плана в SSMS 9 мин 169 1С * SQL * Программирование * Анализ и проектирование систем * Туториал Разрабатываю отчёт, проверяю на...
<5 — 2026'da uzaya kaç SpaceX Starship fırlatması ulaşacak?
Значимый прорыв формирует отрасль ИИ: MaksimKI 9 минут назад Диагностика медленных запросов в 1С: от технологического журнала до плана в SSMS 9 мин 169 1С * SQL * Программирование * Анализ и проектирование систем * Туториал Разрабатываю отчёт, проверяю на тестовых данных — всё быстро. Передаю заказчику — три минуты ожидания. Первый инстинкт — переписать запрос, добавить индекс, сузить период.
Это угадывание, и оно редко помогает с первой попытки. За несколько лет я выработал маршрут, который по моему опыту даёт конкретный ответ за 10–15 минут без привлечения DBA: читать не 1С-код, а план выполнения SQL-запроса, в который платформа его превращает. Почему отчёт тормозит — и при чём здесь SQLТяжёлый расчёт при выполнении запроса происходит в СУБД, а не в коде 1С.
Технические детали
Платформа транслирует 1С-запрос в SQL и передаёт его MS SQL Server или PostgreSQL — весь расчёт выполняется там. Тормозит, как правило, тоже там. Есть три основных сценария деградации.
Первый — неоптимальный текст запроса: оптимизатор строит плохой план из-за структуры самого запроса. Второй — устаревшая статистика СУБД: оптимизатор оценивает количество строк неверно и выбирает неподходящий алгоритм соединения. Третий — нагрузка на дисковую подсистему: запрос написан нормально, но сервер физически не успевает читать данные.
Статья про первый сценарий — он целиком в руках разработчика. По симптомам можно примерно понять, куда смотреть в первую очередь. Если тормозит только при конкретных параметрах — например, для одного склада — похоже на parameter sniffing, плохой план под конкретное значение; смотреть plan cache в SSMS или событие DBMSSQL в ТЖ.
Отраслевые последствия
Если тормозит всегда, вне зависимости от параметров — вероятнее неоптимальная структура запроса или отсутствующий предикат в виртуальной таблице, тут поможет связка ТЖ и плана в SSMS или pgAdmin. Если тормозит только под нагрузкой или по ночам — это уже похоже на конкуренцию за блокировки или I/O, смотреть sys. dm_os_wait_stats и счётчики производительности.
А если было быстро и стало медленно после обновления базы — скорее всего устарела статистика или поменялся план, решается через UPDATE STATISTICS и sp_recompile. Найти виновный запрос через технологический журналТехнологический журнал — штатный инструмент платформы, описанный в документации ИТС в разделе «Технологический журнал». Он фиксирует события платформы вместе с временными характеристиками.
Нас интересуют два типа событий: SDBL — запрос на языке 1С до трансляции, и DBMSSQL / DBPOSTGRS — уже в SQL, с реальным временем выполнения на стороне СУБД. Минимальный конфиг, который не разрастётся до нескольких десятков гигабайт за ночь: история хранится один час (history="1 фильтр — только запросы длиннее 10 секунд. 3 начиная примерно с версии 8.
Этот прогресс даёт важные сигналы о будущем отрасли, и технологический мир внимательно наблюдает.






