Статистика и виды ожиданий. День № 1

Статистика и виды ожиданий. День № 1Сегодня мы обсудим, как можно посмотреть wait stats. Данный скрипт был создан Экспертом в SQL Server Glenn Berry.

Пример:

-- Isolate top waits for server instance since last restart or statistics clear
WITH Waits AS
(SELECT wait_type, wait_time_ms / 1000. AS wait_time_s,
100. * wait_time_ms / SUM(wait_time_ms) OVER() AS pct,
ROW_NUMBER() OVER(ORDER BY wait_time_ms DESC) AS rn
FROM sys.dm_os_wait_stats
WHERE wait_type NOT IN ('CLR_SEMAPHORE','LAZYWRITER_SLEEP','RESOURCE_QUEUE','SLEEP_TASK'
,'SLEEP_SYSTEMTASK','SQLTRACE_BUFFER_FLUSH','WAITFOR', 'LOGMGR_QUEUE','CHECKPOINT_QUEUE'
,'REQUEST_FOR_DEADLOCK_SEARCH','XE_TIMER_EVENT','BROKER_TO_FLUSH','BROKER_TASK_STOP','CLR_MANUAL_EVENT'
,'CLR_AUTO_EVENT','DISPATCHER_QUEUE_SEMAPHORE', 'FT_IFTS_SCHEDULER_IDLE_WAIT'
,'XE_DISPATCHER_WAIT', 'XE_DISPATCHER_JOIN', 'SQLTRACE_INCREMENTAL_FLUSH_SLEEP'))
SELECT W1.wait_type,
CAST(W1.wait_time_s AS DECIMAL(12, 2)) AS wait_time_s,
CAST(W1.pct AS DECIMAL(12, 2)) AS pct,
CAST(SUM(W2.pct) AS DECIMAL(12, 2)) AS running_pct
FROM Waits AS W1
INNER JOIN Waits AS W2
ON W2.rn <= W1.rn
GROUP BY W1.rn, W1.wait_type, W1.wait_time_s, W1.pct
HAVING SUM(W2.pct) - W1.pct < 99 OPTION (RECOMPILE); -- percentage threshold

Этот скрипт использует Dynamic Management View sys.dm_os_wait_stats, чтобы собрать информацию о wait stats. Данная статистика не сможет указать на точное узкое место вашей системы, но она подскажет в какую сторону вам необходимо смотреть. Указание в скрипте OPTION (RECOMPILE) позволяет получать новые данные, которые не будут взять из кэша.

Будьте внимательны, Dynamic Management View sys.dm_os_wait_stats хранит информацию с последнего рестарта SQL Server. Вы так же можете самостоятельно очистить данное представление, используя следующую команду

DBCC SQLPERF('sys.dm_os_wait_stats', CLEAR);

После сбора статистики wait stats, мы можем приступить к исследованию проблемных мест в нашей системе.

Многие статистики связаны друг с другом. Когда использование CPU высоко, все зависящие от CPU ожидания будут выведены в верхней части. Но когда эта проблема будет устранена, все эти ожидания встанут на свои места.

Завтра вас ожидает следующий день из серии «Wait Stats — Wait Types».

Читайте все посты этой серии

Автор: Pinal Dave

***   ***   ***   ***   ***   ***   ***   ***   ***   ***   ***   ***
Полезные Скрипты

Рубрика Проверь себя

Ссылка на наш канал YouTube

Запись опубликована в рубрике Cтатистика и виды ожиданий (Wait Stats and Wait Types) с метками . Добавьте в закладки постоянную ссылку.

Добавить комментарий

Войти с помощью: