Как найти медленный SQL-запрос в 1С-Битрикс
Диагностика медленной страницы через Монитор производительности: хиты, компоненты, журнал SQL, стек вызова и план исполнения.
Системные требования
Нужны тестовая копия проекта, доступ разработчика или администратора и резервная копия перед изменением рабочего кода.
Смотреть системные требования1. Зафиксируйте медленный сценарий
Запишите URL, пользователя, время и повторяемое действие. Сравните страницу без авторизации и под рабочей ролью. Проверьте общее время ответа, количество запросов и состояние кеша.
Не начинайте оптимизацию по субъективному ощущению: нужен воспроизводимый сценарий до и после изменения.
Монитор производительности
Официальный раздел с отчётами по страницам, компонентам, SQL и кешу.
2. Включите монитор на короткий период
Откройте Настройки → Производительность → Панель производительности. В настройках модуля временно включите журнал медленных SQL-запросов и стек вызова.
Установите разумный порог длительности и выключите сбор после теста.
Совет
Включайте подробный журнал SQL на ограниченное время: он создаёт дополнительную нагрузку и может быстро увеличить объём служебных данных.
3. Найдите запрос и компонент
В отчётах «Страницы», «Компоненты», «Хиты» и «SQL запросы» найдите дорогой запрос и вызывающий его компонент. Повторяющийся короткий запрос сотни раз может быть важнее одного длинного.
Стек вызова помогает связать SQL с компонентом, обработчиком или пользовательским модулем.
4. Изучите план исполнения
Откройте план исполнения для запроса. Ищите полное сканирование большой таблицы, сортировку во временной таблице и JOIN без подходящего индекса.
Не добавляйте индекс только по одной строке SQL: оцените частоту запроса, селективность полей и влияние индекса на запись.
5. Исправьте причину и повторите замер
Типовые исправления: уменьшить select, добавить limit, убрать запрос из цикла, объединить выборки, включить кеш или добавить обоснованный индекс.
После изменения очистите только связанный кеш, повторите тот же сценарий и сравните цифры. Сохраните результаты замера и откатите журналирование.
Была ли эта статья полезной?
Спасибо за ваш отзыв!