Ключевой Dynamic Management View (DMV), который помогает нам понять какие ожидания присутствуют — sys.dm_os_wait_stats. Это DMV даёт нам всю информацию, которую мы должны знать относительно статистики ожидания. Однако интерпритацию оставляют нам. В этом и заключается основная сложность. Сегодня мы поговорим о базовых понятия этого DMV.
Вырезка из Book Online:
“Значения времени конкретных типов ожиданий в процессе выполнения запроса могут указывать на узкие места или точки простоя в запросе. Подобным образом высокие значения времени ожидания или числа ожиданий по всему серверу могут указывать на узкие места или пробки во взаимодействии запросов на экземпляре сервера.»
Позвольте для начала представить следующий запрос, с участием данного DMV.
SELECT * FROM sys.dm_os_wait_stats ORDER BY wait_time_ms DESC GO
Вот небольшое описание колонок данного запроса:
wait_type – это имя ожидания. Здесь могут быть 3 типа ожиданий – ресурсов, очередей, внешнее.
waiting_tasks_count – Число ожиданий данного типа. Этот счетчик наращивается каждый раз при начале ожидания. Если тут большое число, то это хороший кандидат для начала работы с ним.
wait_time_ms – Общее время ожидания данного типа в миллисекундах. Это время включает signal_wait_time_ms.
max_wait_time_ms – Максимальное время ожидания данного типа.
signal_wait_time_ms – Разница между временем сигнализации ожидающего потока и временем начала его выполнения. Если очередь на runnable будет большой, то значение данного счётчика будет велико.
Необходимо учесть, что данное DMV не показывает текущих ожидай. Это суммарные показатели всех ожиданий с момента старта сервера или очистки данной статистики.
Завтра вы рассмотрим ещё 2 DMV, которые могут быть полезны в понимании ожиданий.
sys.dm_os_waiting_tasks sys.dm_exec_requests
Автор: Pinal Dave
*** *** *** *** *** *** *** *** *** *** *** ***
Полезные Скрипты
Рубрика Проверь себя
Ссылка на наш канал YouTube