Middle База данных Рекомендуется

Отладка запросов: SQL Tracker

Анализ запросов к базе выполняется через режим отладки в административной панели или программно с помощью класса Bitrix\Main\Diag\SqlTracker. Трекер фиксирует полный текст запросов, время их исполнения и стек вызовов (getTrace()), позволяя локализовать проблему N+1 запросов в компонентах и медленные выборки в фоновых агентах.

Прогресс хранится в этом браузере. Войдите, чтобы сохранить его в аккаунте.

Что нужно понимать

  • 1
    Включение трекера
  • 2
    Анализ запросов
  • 3
    Поиск узких мест

Материалы

Проверь себя

Заказчик жалуется, что страница раздела открывается четыре секунды. С чего начать, не открывая код?

С кнопки «Отладка» в панели администратора под админом: включить статистику SQL и включаемых областей. Под каждым компонентом появится число запросов, и виновник обычно один — компонент с сотнями запросов в цикле.

Почему кнопка «Отладка» ничего не показывает по агенту или консольной команде, и что использовать вместо неё?

Панель работает только на хите с авторизованным администратором. В CLI, агентах и AJAX-обработчиках трекер запускают из кода: Connection::startTracker(), затем getQueries() у объекта SqlTracker или startFileLog() для записи в файл.

Трекер показал 300 одинаковых запросов, но не понятно, откуда они. Как найти место в коде?

У каждого SqlTrackerQuery есть getTrace() со стеком вызовов, глубина по умолчанию 10 кадров и меняется через setDepthBackTrace(). В стеке ищут первый кадр вне ядра: обычно это result_modifier.php или обработчик события.

Разработчик оставил startFileLog() на проде «на пару дней». Что произойдёт?

Каждый запрос всех хитов с полным стеком пишется в один файл; на сайте с трафиком он вырастет до гигабайт за часы и забьёт диск. Плюс сам трекер держит все запросы хита в памяти и замедляет страницу.

Не сходится?

Спросите Домового: он знает документацию и материалы сайта по этой теме. Ответит сразу.

Кирилл Новожилов

Нужен живой разбор?

Консультация автора BXMax: созвон один на один, 90 минут на вашу задачу по теме «Отладка запросов: SQL Tracker».

Выбрать время Ближайшее: 10 ноября, вторник, 20:00–21:30 по Москве

Знаете материал лучше? Предложите ссылку: после проверки она появится в этом разделе.

Войти, чтобы предложить
Поделиться в Telegram
Мы используем файлы cookie для улучшения работы сайта. Продолжая использовать сайт, вы соглашаетесь с нашей политикой конфиденциальности.
AI Домовой

AI Домовой История

на связи

пишет…

Можно закрыть чат и перейти на другую страницу. Когда ответ будет готов, на кнопке Домового появится отметка.

Нет истории чатов
AI Домовой

Нужна авторизация

Войдите, чтобы задавать вопросы AI Домовому.

Войти