Ожидания Waits statistics
Waits statistics - содержит счетчики производительности, сообщающие сведения о состояниях ожидания различных категорий
Категории:
- CPU
- Thread-safe memory objects waits
- Wait for the worker
Виды ожиданий Wait statistics
Виды ожиданий:
IO
- PAGEIOLATCH_SH и PAGEIOLATCH_EX
- см нагружающие запросы по вводу/выводу
- ASYNC_IO_COMPLETION - Возникает, когда задача ожидает завершения ввода-вывода
CPU, CPU Parallelizm
- CXPACKET - Означает параллелизм, но не обязательно в нем проблема
- Advanced
- Если у нас транзакционная система: имеет смысл установить Max Degree Parallelism = 1
- Хранилища и витрины данных: установить Max Degree Parallelism = 0 или явное количество CPU
- Смешанные: установить Max Degree Parallelism = 1 , a y запросов требующих параллелизма установить hint MAXDOP=0
- Параллелизм Maxdop и cost Threshold
- THREADPOOL - Такой тип говорит, что недостаточно рабочих потоков в системе для того, чтобы удовлетворить запрос. Обычно причина в большом количестве сильно параллелизованных запросов, пытающихся выполниться.
- SOS_SCHEDULER_YIELD - Имеет место, когда задача добровольно отказывается от выполнения планировщиком в пользу других задач. Во время этого ожидания задача ожидается в очереди запуска для возобновления квантового кванта, т. е., ожидая, чтобы он снова выполнялся на ЦП. Длительные ожидания этого типа ожидания чаще всего указывают возможности оптимизации запросов, выполняющих сканирование индекса или таблицы.
Locks
- LATCH_XX
- LCK_M_XX - блокировка
- LCK_M_IX - блокировка
- PREEMPTIVE_XE_DISPATCHER - связано с фоновыми потоками расширенных событий Extended Events
Network
- ASYNC_NETWORK_IO - SQL Server ждет, пока клиент закончит получать данные
Паттерны
- Исторически Wait Statistics