3. SQL Trace: Что и зачем
Что?
Набор событий и данных, собранный
Database Engine.
Зачем?
Основное – что сейчас происходит на
сервере?
Собрать статистику выполнения
7. Старый добрый профайлер!
Знакомый инструмент с хорошим UI
Выбор событий и данных
Фильтрация
Группировка
Сохранение трассы в таблицу/файл
8. Server side trace
sp_trace_create/sp_trace_setevent
Быстрый и экономный способ
Пишет трасу в файл на диск, с rollover/black box
Результат можно читать профайлером или
fn_trace_gettable
Однако….
Требует дополнительных ресурсов диска, CPU для
чтения/анализа/визуализации результатов
собранной трассы
9. Что можно сделать с Server Side Trace
Мы можем читать трассы, так в чем же
дело?
Replay Markup Language – RML
ClearTrace
Любой инструмент с fn_trace_gettable() /
TraceFile
10. Extended events
Продвинутая версия server side trace
Больше настроек
Дополнительные потребители событий
Additional event targets (not only files)
Ловит события, которые не ловит обычная
траса
11. Так где же истина?
Никто не совершенен!
Ни одно из решений не устраивает нас на
все 100%
13. Мы можем создать свой профайлер!
А зачем?
Гибкий и точный контроль трасы
Продвинутое фильтрование
Продвинутые преобразования
Продвинутое группирование
Требуется меньше ресурсов
Скользящее окно и раннее отбрасывание данных
Малые размеры
24. Логируем выполнение процедур
Тот же принцип, что и при ловле
отдельного плана
Ловим SP:Starting
Продолжаем ловить
последующие события
Пока не поймаем SP:Completed
Если набранная информация
подпадает под критерий
(например по reads или
времени выполнения) –
сохраняем результат
Отбрасываем накопленную
информацию
Ждем следующего SP:Starting –
и начинаем заново
25. Собираем статистику по параметрам
Закон Парето: 20/80
20% значений используются в 80% запросов
Как собирать?
Ловим стейтмент
Разбираем его (regexp/парсер)
Извлекаем параметры и их значения
Собираем статистику
26. Собираем детальную информацию
Распределение запросов по длительности
Распределение запросов по времени суток
GetBalance
10
20
30
40
50
60
70
80
90
PayDebt
100
CancelOrder
Окрестности запроса
0-6
7-12
13-19
20-24
27. Техническая поддержка приложений
Автоматические или полуавтоматические
Сбор трасы
Сбор статистики выполнения
Соотнесения трасы запросов и счетчиков
производительности Windows