Захват планов выполнения только для долгоиграющих запросов
Пересказ статьи Grant Fritchey. Capture Execution Plans Only For Long Running Queries
Вопрос: Как я могу использовать Profiler, чтобы захватить планы выполнения тех запросов, которые выполняются дольше заданного времени?
Query_post_execution_showplan
Расширенные события даже лучше, чем Profiler.Period. Одной из многих вещей, в чем они превосходят профайлер, является способ конфигурации событий. Возьмем к примеру query_post_execution_showplan. Вот поля, которые при этом захватываются:
Это событие будет захватывать планы выполнения плюс метрики времени выполнения. Можно легко отфильтровать любые из перечисленных полей, и вы можете даже добавить поле с именем базы данных, если хотите.
Поэтому фильтрация по длительности довольно проста:
CREATE EVENT SESSION ExecPlansDuration
ON SERVER
ADD EVENT sqlserver.query_post_execution_showplan
(WHERE ([duration] > (1000000)))
ADD TARGET package0.event_file
(SET filename = N'new_session');
Единственно, что нужно знать - это то, что значение длительности указывается в миллисекундах. Поэтому определенная выше сессия будет захватывать только те запросы, которые выполняются больше одной секунды.
Однако добавлю одно предостережение. Что бы вы не использовали, Profiler/Trace или Extended Events, захват планов выполнения обходится дорого. Он будет грузить вашу систему. Будьте очень внимательны, чтобы при фильтрации событий вы захватывали только то, что вам действительно нужно. Больше о профилировании запросов прочитайте здесь.
При желании вы также можете добавить Action в query_post_execution_showplan , чтобы получить текст запроса. Таким образом, помимо возможности фильтрации по object_id для процедур, вы можете фильтровать по запросу или фрагменту запроса.
Заключение
Основной вывод состоит в том, что Extended Events просто предлагают большее вариантов и делают эти варианты проще для использования. Вместо того, чтобы напрягать мозги в попытках выяснить, как сделать то или иное с помощью профайлера, начните изучать расширенные события. Как вы можете увидеть из вышеприведенного запроса, их применение довольно простое. Добавьте этот инструмент в свой арсенал.
Обратные ссылки
Автор не разрешил комментировать эту запись
Комментарии
Показывать комментарии Как список | Древовидной структурой