MS SQL Server, ожидания, скрипт

MS SQL Server имеет отличный механизм для контроля внутренних процессов- ожидания. Накопительные счетчики показывают что происходит с сервером. В чем беда- счетчики накопительные, показывает некую среднюю статистику за время работы. Иногда этого недостаточно. Задумался сервер, что-то там себе думает, на внешние раздражители реагирует плохо. Ты что себе думаешь, машина басурманская?

Написан очень простой скрипт. Он фотографирует состояние счетчиков, через минуту делает это еще раз, сравнивает. Ценность в том, что показывает состояние сервера именно в эту, текущую минуту. Кроме того, добавлены комментарии, много букАв 🙂

–Dmitry Gorchilin
–20151013, DP.UA
–Текущие ожидания MS SQL Server
select wait_type,wait_time_ms into #dm_os_wait_stats from sys.dm_os_wait_stats
waitfor delay ’00:01:00′

;with [SumWait] as (select sum(sys.dm_os_wait_stats.wait_time_ms-#dm_os_wait_stats.wait_time_ms) as SumWait
FROM sys.dm_os_wait_stats,#dm_os_wait_stats
where sys.dm_os_wait_stats.wait_type=#dm_os_wait_stats.wait_type
and sys.dm_os_wait_stats.wait_time_ms-#dm_os_wait_stats.wait_time_ms>0
)
select 100.*(sys.dm_os_wait_stats.wait_time_ms-#dm_os_wait_stats.wait_time_ms)/SumWait.SumWait as ‘%OfWait’,
sys.dm_os_wait_stats.wait_type,
case sys.dm_os_wait_stats.wait_type
when ‘ABR’ then ‘Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется.’
when ‘ASSEMBLY_LOAD’ then ‘Имеет место при монопольном доступе к загрузке сборки.’
when ‘ASYNC_DISKPOOL_LOCK’ then ‘Имеет место при попытке синхронизации параллельных потоков, выполняющих такие задачи, как создание или инициализация файла.’
when ‘ASYNC_IO_COMPLETION’ then ‘Имеет место, когда для своего завершения задача ожидает ввода-вывода.’
when ‘ASYNC_NETWORK_IO’ then ‘Имеет место при операциях сетевой записи, когда задача блокируется из сети. Убедитесь, что клиент обрабатывает данные с сервера.’
when ‘AUDIT_GROUPCACHE_LOCK’ then ‘Имеет место, когда возникает ожидание блокировки, которая управляет доступом к определенному кэшу. Кэш содержит сведения о том, какие аудиты используются для слежения за каждой группой действий аудита.’
when ‘AUDIT_LOGINCACHE_LOCK’ then ‘Имеет место, когда возникает ожидание блокировки, которая управляет доступом к определенному кэшу. Кэш содержит сведения о том, какие аудиты используются для аудита входа за группами действий аудита.’
when ‘AUDIT_ON_DEMAND_TARGET_LOCK’ then ‘Имеет место, когда существует ожидание блокировки, используемой для обеспечения одиночной инициализации связанных с аудитом целей расширенного события.’
when ‘AUDIT_XE_SESSION_MGR’ then ‘Имеет место, когда существует ожидание блокировки, используемой для синхронизации запуска и остановки, связанных с аудитом сеансов расширенного события.’
when ‘BACKUP’ then ‘Имеет место, когда задача блокируется как часть процесса резервного копирования.’
when ‘BACKUP_OPERATOR’ then ‘Имеет место при ожидании задачей монтирования ленты. Для просмотра состояния ленты служит запрос sys.dm_io_backup_tapes. Если операция монтирования не назначена к выполнению, этот тип ожидания может указывать на аппаратную проблему накопителя на магнитной ленте.’
when ‘BACKUPBUFFER’ then ‘Имеет место при ожидании задачей резервного копирования данных или буфера для их записи. Этот тип встречается редко, преимущественно при ожидании задачей монтирования магнитной ленты.’
when ‘BACKUPIO’ then ‘Имеет место при ожидании задачей резервного копирования данных или буфера для их записи. Этот тип встречается редко, преимущественно при ожидании задачей монтирования магнитной ленты.’
when ‘BACKUPTHREAD’ then ‘Имеет место, когда для своего завершения задача ожидает завершения задачи резервного копирования. Время ожидания может быть длительным, от нескольких минут до нескольких часов. Если задача, выполнение которой ожидается, находится в процессе ввода-вывода, этот тип не указывает на проблему.’
when ‘BAD_PAGE_PROCESS’ then ‘Имеет место, когда фоновый регистратор сбойных страниц пытается избежать запуска чаще, чем каждые пять секунд. Чрезмерное количество сбойных страниц вызывает частые запуски регистратора.’
when ‘BROKER_CONNECTION_RECEIVE_TASK’ then ‘Имеет место при ожидании доступа для получения сообщения на конечной точке соединения. Доступ на получение к конечной точке сериализуется.’
when ‘BROKER_ENDPOINT_STATE_MUTEX’ then ‘Имеет место при конфликте доступа к состоянию конечной точки соединения компонента Service Broker. Доступ к состоянию изменений сериализуется.’
when ‘BROKER_EVENTHANDLER’ then ‘Имеет место при ожидании задачи в первичном обработчике событий компонента Service Broker. Это должно длиться очень короткое время.’
when ‘BROKER_INIT’ then ‘Имеет место при инициализации компонента Service Broker в каждой из активных баз данных. Это не должно происходить часто.’
when ‘BROKER_MASTERSTART’ then ‘Имеет место, когда задача ожидает запуска первичного обработчика событий компонента Service Broker. Это должно длиться очень короткое время.’
when ‘BROKER_RECEIVE_WAITFOR’ then ‘Имеет место при ожидании RECEIVE WAITFOR. Это стандартная ситуация, если нет готовых к получению сообщений.’
when ‘BROKER_REGISTERALLENDPOINTS’ then ‘Имеет место в процессе инициализации конечной точки соединения компонента Service Broker. Это должно длиться очень короткое время.’
when ‘BROKER_SERVICE’ then ‘Имеет место, когда список целей компонента Service Broker, связанный с целевой службой, обновляется или когда в нем изменяется приоритет.’
when ‘BROKER_SHUTDOWN’ then ‘Имеет место при запланированном завершении работы компонента Service Broker. Это ожидание обычно длится короткое время, если вообще имеет место.’
when ‘BROKER_TASK_STOP’ then ‘Имеет место, если обработчик задачи очереди компонента Service Broker пытается завершить работу задачи. Проверка состояния сериализуется и заранее должна находиться в выполняющемся состоянии.’
when ‘BROKER_TO_FLUSH’ then ‘Имеет место, если модуль отложенной записи на диск компонента Service Broker производит сброс хранимых в памяти объектов передачи в рабочую таблицу.’
when ‘BROKER_TRANSMITTER’ then ‘Имеет место при ожидании передачи сообщений компонентом Service Broker.’
when ‘BUILTIN_HASHKEY_MUTEX’ then ‘Может иметь место после запуска экземпляра, во время инициализации внутренних структур данных. После инициализации структур данных повторяться не будет.’
when ‘CHECK_PRINT_RECORD’ then ‘Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется.’
when ‘CHECKPOINT_QUEUE’ then ‘Имеет место при ожидании задачей контрольных точек следующего запроса контрольной точки.’
when ‘CHKPT’ then ‘Имеет место при запуске сервера для уведомления потока контрольных точек о возможности его запуска.’
when ‘CLEAR_DB’ then ‘Происходит во время операций, которые изменяют состояние базы данных, таких как открытие или закрытие базы данных.’
when ‘CLR_AUTO_EVENT’ then ‘Имеет место, когда задача в данный момент производит выполнение среды CLR и ожидает инициации конкретного автособытия. Ожидание обычно длится долго и не указывает на проблему.’
when ‘CLR_CRST’ then ‘Имеет место, когда задача в данный момент производит выполнение среды CLR и ожидает ввода критической секции задачи, используемой в данный момент другой задачей.’
when ‘CLR_JOIN’ then ‘Имеет место, когда задача в данный момент производит выполнение среды CLR и ожидает завершения другой задачи. Такое состояние ожидания имеет место при соединении задач.’
when ‘CLR_MANUAL_EVENT’ then ‘Имеет место, когда задача в данный момент производит выполнение среды CLR и ожидает инициации конкретного ручного события.’
when ‘CLR_MEMORY_SPY’ then ‘Возникает во время ожидания получения блокировки для структуры данных, используемой для записи всех выделений виртуальной памяти, поступающих из среды CLR. Структура данных блокируется для обеспечения ее целостности при осуществлении параллельного доступа.’
when ‘CLR_MONITOR’ then ‘Имеет место, когда задача в данный момент производит выполнение среды CLR и ожидает получения блокировки мониторинга.’
when ‘CLR_RWLOCK_READER’ then ‘Имеет место, когда задача в данный момент производит выполнение среды CLR и ожидает блокировки модуля чтения.’
when ‘CLR_RWLOCK_WRITER’ then ‘Имеет место, когда задача в данный момент производит выполнение среды CLR и ожидает блокировки модуля записи.’
when ‘CLR_SEMAPHORE’ then ‘Имеет место, когда задача в данный момент производит выполнение среды CLR и ожидает семафора.’
when ‘CLR_TASK_START’ then ‘Имеет место при ожидании задачей CLR выполнения запуска.’
when ‘CLRHOST_STATE_ACCESS’ then ‘Имеет место, если происходит ожидание для получения монопольного доступа к структурам данных, на которых размещена среда CLR. Этот тип ожидания происходит при установке или удалении среды выполнения CLR.’
when ‘CMEMTHREAD’ then ‘Имеет место, когда задача ожидает объекта памяти, безопасного для использования потоками. Время ожидания может возрасти при конфликтах между несколькими задачами, пытающимися выделить память через один и тот же объект памяти.’
when ‘CXPACKET’ then ‘Имеет место при попытке синхронизации итератора обмена обработчика запросов. Можно попытаться снизить степень параллелизма, если конфликты такого типа становятся проблемой.’
when ‘CXROWSET_SYNC’ then ‘Имеет место при параллельном просмотре диапазона.’
when ‘DAC_INIT’ then ‘Имеет место при инициализации выделенного административного соединения.’
when ‘DBMIRROR_DBM_EVENT’ then ‘Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется.’
when ‘DBMIRROR_DBM_MUTEX’ then ‘Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется.’
when ‘DBMIRROR_EVENTS_QUEUE’ then ‘Имеет место при ожидании обработки событий в процессе зеркального отображения базы данных.’
when ‘DBMIRROR_SEND’ then ‘Имеет место, когда задача ожидает очистки резервного журнала коммуникаций сетевого уровня для получения возможности отправки сообщений. Указывает на начало переполнения уровня коммуникаций, что повлияет на пропускную способность зеркального отображения базы данных.’
when ‘DBMIRROR_WORKER_QUEUE’ then ‘Указывает, что рабочая задача зеркального отображения базы данных ожидает дальнейшей работы.’
when ‘DBMIRRORING_CMD’ then ‘Имеет место, когда задача ожидает сохранения записей журнала на диск. Это состояние ожидания обычно занимает длительные периоды времени.’
when ‘DEADLOCK_ENUM_MUTEX’ then ‘Имеет место, когда монитор взаимоблокировок и представление sys.dm_os_waiting_tasks пытаются удостовериться, что SQL Server не запустил несколько операций поиска взаимоблокировок одновременно.’
when ‘DEADLOCK_TASK_SEARCH’ then ‘Большое время ожидания этого ресурса указывает на то, что сервер выполняет запросы в верхней части представления sys.dm_os_waiting_tasks и что эти запросы блокируют поиск взаимоблокировок монитором взаимоблокировок. Такой тип ожидания используется только монитором взаимоблокировки. Запросы в верхней части представления sys.dm_os_waiting_tasks используют ожидание DEADLOCK_ENUM_MUTEX.’
when ‘DEBUG’ then ‘Имеет место в процессе отладки Transact-SQL и CLR с целью внутренней синхронизации.’
when ‘DISABLE_VERSIONING’ then ‘Имеет место, когда SQL Server опрашивает диспетчер транзакции версий с целью проверки, не является ли отметка времени самой ранней активной транзакции более поздней, чем отметка времени начала изменения состояния. При этом варианте все транзакции моментальных снимков, запущенные до запуска инструкции ALTER DATABASE, завершаются. Это состояние ожидания используется в случае, когда SQL Server отключает управление версиями с помощью инструкции ALTER DATABASE.’
when ‘DISKIO_SUSPEND’ then ‘Имеет место, когда задача ожидает доступа к файлу при активном внешнем резервном копировании. Это регистрируется для каждого ожидающего пользовательского процесса. Значение, большее 5 на один пользовательский процесс, может указывать на то, что внешнее резервное копирование занимает слишком много времени.’
when ‘DISPATCHER_QUEUE_SEMAPHORE’ then ‘Имеет место, когда поток из пула диспетчеров ожидает поступления дополнительной работы. Время ожидания данного типа ожидания увеличится, если диспетчер находится в состоянии простоя.’
when ‘DLL_LOADING_MUTEX’ then ‘Имеет место один раз при ожидании загрузки DLL-библиотеки синтаксического анализатора XML.’
when ‘DROPTEMP’ then ‘Имеет место между попытками удаления временного объекта, если предыдущая попытка закончилась неудачно. Длительность ожидания растет экспоненциально с каждой неудачной попыткой удаления.’
when ‘DTC’ then ‘Имеет место, когда задача ожидает события, используемого для управления переходом состояний. Это состояние контролирует, когда осуществляется восстановление транзакций службы координатора распределенных транзакций Microsoft (MS DTC) после получения SQL Server уведомления о недоступности службы MS DTC.’
when ‘DTC_ABORT_REQUEST’ then ‘Имеет место в течение сеанса исполнителя службы MS DTC, когда сеанс ожидает получения владения транзакцией MS DTC. После получения службой MS DTC владения транзакцией сеанс может произвести ее откат. В общем случае сеанс будет ожидать другого сеанса, использующего транзакцию.’
when ‘DTC_RESOLVE’ then ‘Имеет место, когда в ходе транзакции между базами данных задача восстановления ожидает базу данных master, чтобы запросить результат транзакции.’
when ‘DTC_STATE’ then ‘Имеет место, когда задача ожидает события, защищающего изменения внутреннего объекта глобального состояния службы MS DTC. Это состояние должно держаться в течение очень короткого промежутка времени.’
when ‘DTC_TMDOWN_REQUEST’ then ‘Имеет место в рабочем сеансе MS DTC, когда SQL Server получает уведомление о недоступности службы MS DTC. Сначала исполнитель ждет начала процесса восстановления MS DTC. Затем он ждет получения результата распределенной транзакции, над которой он работал. Это может продолжаться до тех пор, пока соединение со службой MS DTC не будет восстановлено.’
when ‘DTC_WAITFOR_OUTCOME’ then ‘Имеет место, когда задачи восстановления ждут активизации службы MS DTC для получения возможности разрешения подготовленных транзакций.’
when ‘DUMP_LOG_COORDINATOR’ then ‘Имеет место, когда главная задача ожидает формирования данных подзадачей. Обычно это состояние не наблюдается. Длительное время ожидания указывает на непредвиденную блокировку. Следует изучить поведение подзадачи.’
when ‘DUMPTRIGGER’ then ‘Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется.’
when ‘EC’ then ‘Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется.’
when ‘EE_PMOLOCK’ then ‘Имеет место в процессе синхронизации определенных типов выделения памяти в ходе выполнения инструкции.’
when ‘EE_SPECPROC_MAP_INIT’ then ‘Имеет место в процессе синхронизации создания внутренней хэш-таблицы процедуры. Это может произойти только при первом доступе к хэш-таблице после запуска экземпляра SQL Server.’
when ‘ENABLE_VERSIONING’ then ‘Имеет место, когда SQL Server ожидает завершения всех транзакций обновления базы данных перед объявлением готовности базы к переходу в разрешенное состояние изоляции моментальных снимков. Это состояние используется в случае, если SQL Server разрешает изоляцию моментальных снимков с помощью инструкции ALTER DATABASE.’
when ‘ERROR_REPORTING_MANAGER’ then ‘Имеет место в процессе синхронизации нескольких параллельных инициализаций журнала ошибок.’
when ‘EXCHANGE’ then ‘Имеет место в процессе синхронизации в итераторе обмена обработчика запросов при параллельных запросах.’
when ‘EXECSYNC’ then ‘Имеет место в процессе синхронизации в обработчике запросов в областях, не относящихся к итератору обмена, при параллельных запросах. Примерами таких областей являются битовые карты, большие двоичные объекты (LOB) и итератор подкачки. Это состояние ожидания может часто использоваться объектами LOB.’
when ‘EXECUTION_PIPE_EVENT_INTERNAL’ then ‘Имеет место при синхронизации между производителем и потребителем пакетного выполнения, переданных через контекст соединения.’
when ‘FAILPOINT’ then ‘Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется.’
when ‘FCB_REPLICA_READ’ then ‘Имеет место при синхронизации операций чтения разреженного файла моментального снимка (или временного моментального снимка, созданного с помощью DBCC).’
when ‘FCB_REPLICA_WRITE’ then ‘Имеет место при синхронизации помещения страницы или запроса страницы из разреженного файла моментального снимка (или временного моментального снимка, созданного с помощью DBCC).’
when ‘FS_FC_RWLOCK’ then ‘Имеет место, когда сборщик мусора FILESTREAM ожидает выполнения одного из следующих действий: -Отключение сборки мусора (используется операциями резервного копирования и восстановления).- Выполнение одного цикла сборщика мусора FILESTREAM.’
when ‘FS_GARBAGE_COLLECTOR_SHUTDOWN’ then ‘Имеет место, если сборщик мусора FILESTREAM ожидает завершения задач очистки.’
when ‘FS_HEADER_RWLOCK’ then ‘Имеет место при ожидании получения доступа к заголовку FILESTREAM контейнера данных FILESTREAM с целью считывания или обновления содержимого файла заголовка FILESTREAM (Filestream.hdr).’
when ‘FS_LOGTRUNC_RWLOCK’ then ‘Имеет место при ожидании получения доступа к усечению журнала FILESTREAM для выполнения любого из следующих действий. – Временное отключение усечения журнала FILESTREAM (FSLOG) (используется операциями резервного копирования и восстановления). -Выполнение одного цикла усечения журнала FSLOG.’
when ‘FSA_FORCE_OWN_XACT’ then ‘Возникает, если операции ввода-вывода файла FILESTREAM необходимо установить соединение со связанной транзакцией, которая в данный момент занята другим сеансом.’
when ‘FSAGENT’ then ‘Имеет место, если операция ввода-вывода файла FILESTREAM ожидает ресурс агента FILESTREAM, используемого операцией ввода-вывода другого файла.’
when ‘FSTR_CONFIG_MUTEX’ then ‘Имеет место во время ожидания завершения перенастройки другой функции FILESTREAM.’
when ‘FSTR_CONFIG_RWLOCK’ then ‘Имеет место при ожидании сериализации доступа к параметрам конфигурации FILESTREAM.’
when ‘FT_METADATA_MUTEX’ then ‘Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется.’
when ‘FT_RESTART_CRAWL’ then ‘Имеет место в случае, когда требуется перезапуск полнотекстового сканирования с последней надежной точки для восстановления после временного сбоя. Ожидание позволяет рабочим задачам, работающим в данный момент над этим заполнением, завершиться или завершить текущий этап.’
when ‘FULLTEXT GATHERER’ then ‘Имеет место в процессе синхронизации полнотекстовых операций.’
when ‘GUARDIAN’ then ‘Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется.’
when ‘HTTP_ENUMERATION’ then ‘Имеет место при запуске системы для перечисления конечных точек HTTP с целью запуска протокола HTTP.’
when ‘HTTP_START’ then ‘Имеет место при ожидании соединением завершения инициализации HTTP.’
when ‘IMPPROV_IOWAIT’ then ‘Имеет место, когда SQL Server ожидает завершения ввода-вывода при массовой загрузке.’
when ‘INTERNAL_TESTING’ then ‘Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется.’
when ‘IO_AUDIT_MUTEX’ then ‘Имеет место в процессе синхронизации буферов событий трассировки.’
when ‘IO_COMPLETION’ then ‘Имеет место при ожидании завершения операций ввода-вывода. Этот тип ожидания обычно не относится к операциям ввода-вывода страниц данных. Ожидания завершения ввода-вывода страниц данных отображаются как PAGEIOLATCH_*.’
when ‘IO_RETRY’ then ‘Имеет место, когда операция ввода-вывода (например, чтение или запись на диск), завершается неудачно в связи с нехваткой ресурсов, после чего производится повторная попытка.’
when ‘IOAFF_RANGE_QUEUE’ then ‘Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется.’
when ‘KSOURCE_WAKEUP’ then ‘Используется задачей управления службами при ожидании запросов от диспетчера управления службами. Ожидание обычно длится долго и не указывает на проблему.’
when ‘KTM_ENLISTMENT’ then ‘Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется.’
when ‘KTM_RECOVERY_MANAGER’ then ‘Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется.’
when ‘KTM_RECOVERY_RESOLUTION’ then ‘Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется.’
when ‘LATCH_DT’ then ‘Имеет место при ожидании кратковременной блокировки DT (удаления). Не включает в себя буферные кратковременные блокировки или кратковременные блокировки меток транзакции. Список ожиданий LATCH_* доступен в представлении sys.dm_os_latch_stats. Обратите внимание на то, что в представлении sys.dm_os_latch_stats ожидания LATCH_NL, LATCH_SH, LATCH_UP, LATCH_EX и LATCH_DT сгруппированы.’
when ‘LATCH_EX’ then ‘Имеет место при ожидании кратковременной блокировки EX (монопольной). Не включает в себя буферные кратковременные блокировки или кратковременные блокировки меток транзакции. Список ожиданий LATCH_* доступен в представлении sys.dm_os_latch_stats. Обратите внимание на то, что в представлении sys.dm_os_latch_stats ожидания LATCH_NL, LATCH_SH, LATCH_UP, LATCH_EX и LATCH_DT сгруппированы.’
when ‘LATCH_KP’ then ‘Имеет место при ожидании кратковременной блокировки KP (удержания). Не включает в себя буферные кратковременные блокировки или кратковременные блокировки меток транзакции. Список ожиданий LATCH_* доступен в представлении sys.dm_os_latch_stats. Обратите внимание на то, что в представлении sys.dm_os_latch_stats ожидания LATCH_NL, LATCH_SH, LATCH_UP, LATCH_EX и LATCH_DT сгруппированы.’
when ‘LATCH_NL’ then ‘Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется.’
when ‘LATCH_SH’ then ‘Имеет место при ожидании кратковременной блокировки SH (коллективной). Не включает в себя буферные кратковременные блокировки или кратковременные блокировки меток транзакции. Список ожиданий LATCH_* доступен в представлении sys.dm_os_latch_stats. Обратите внимание на то, что в представлении sys.dm_os_latch_stats ожидания LATCH_NL, LATCH_SH, LATCH_UP, LATCH_EX и LATCH_DT сгруппированы.’
when ‘LATCH_UP’ then ‘Имеет место при ожидании кратковременной блокировки UP (обновления). Не включает в себя буферные кратковременные блокировки или кратковременные блокировки меток транзакции. Список ожиданий LATCH_* доступен в представлении sys.dm_os_latch_stats. Обратите внимание на то, что в представлении sys.dm_os_latch_stats ожидания LATCH_NL, LATCH_SH, LATCH_UP, LATCH_EX и LATCH_DT сгруппированы.’
when ‘LAZYWRITER_SLEEP’ then ‘Имеет место при приостановке задач средства отложенной записи. Представляет собой показатель времени, затраченного ожидающими фоновыми задачами. Не следует учитывать это состояние при исследовании пользовательских простоев.’
when ‘LCK_M_BU’ then ‘Имеет место, когда задача ожидает получения блокировки для массового обновления (BU). Матрицу совместимости блокировок см. в представлении sys.dm_tran_locks (Transact-SQL).’
when ‘LCK_M_IS’ then ‘Имеет место, когда задача ожидает получения блокировки с намерением коллективного доступа (IS). Матрицу совместимости блокировок см. в представлении sys.dm_tran_locks (Transact-SQL).’
when ‘LCK_M_IU’ then ‘Имеет место, когда задача ожидает получения блокировки с намерением обновления (IU). Матрицу совместимости блокировок см. в представлении sys.dm_tran_locks (Transact-SQL).’
when ‘LCK_M_IX’ then ‘Имеет место, когда задача ожидает получения блокировки с намерением монопольного доступа (IX). Матрицу совместимости блокировок см. в представлении sys.dm_tran_locks (Transact-SQL).’
when ‘LCK_M_RIn_NL’ then ‘Имеет место, когда задача ожидает получения блокировки типа NULL на текущее ключевое значение и блокировки вставки диапазона между текущим и предыдущим ключами. Блокировка типа NULL на ключ — это блокировка с немедленным снятием. Матрицу совместимости блокировок см. в представлении sys.dm_tran_locks (Transact-SQL).’
when ‘LCK_M_RIn_S’ then ‘Имеет место, когда задача ожидает получения совмещаемой блокировки на текущее ключевое значение и блокировки вставки диапазона между текущим и предыдущим ключами. Матрицу совместимости блокировок см. в представлении sys.dm_tran_locks (Transact-SQL).’
when ‘LCK_M_RIn_U’ then ‘Задача ожидает получения блокировки на обновление текущего ключевого значения и блокировки вставки диапазона между текущим и предыдущим ключами. Матрицу совместимости блокировок см. в представлении sys.dm_tran_locks (Transact-SQL).’
when ‘LCK_M_RIn_X’ then ‘Имеет место, когда задача ожидает получения монопольной блокировки на текущее ключевое значение и блокировки вставки диапазона между текущим и предыдущим ключами. Матрицу совместимости блокировок см. в представлении sys.dm_tran_locks (Transact-SQL).’
when ‘LCK_M_RS_S’ then ‘Имеет место, когда задача ожидает получения совмещаемой блокировки на текущее ключевое значение и совмещаемой блокировки диапазона между текущим и предыдущим ключами. Матрицу совместимости блокировок см. в представлении sys.dm_tran_locks (Transact-SQL).’
when ‘LCK_M_RS_U’ then ‘Имеет место, когда задача ожидает получения блокировки обновления текущего ключевого значения и блокировки обновления диапазона между текущим и предыдущим ключами. Матрицу совместимости блокировок см. в представлении sys.dm_tran_locks (Transact-SQL).’
when ‘LCK_M_RX_S’ then ‘Имеет место, когда задача ожидает получения совмещаемой блокировки на текущее ключевое значение и монопольной блокировки диапазона между текущим и предыдущим ключами. Матрицу совместимости блокировок см. в представлении sys.dm_tran_locks (Transact-SQL).’
when ‘LCK_M_RX_U’ then ‘Имеет место, когда задача ожидает получения блокировки на обновление текущего ключевого значения и монопольной блокировки диапазона между текущим и предыдущим ключами. Матрицу совместимости блокировок см. в представлении sys.dm_tran_locks (Transact-SQL).’
when ‘LCK_M_RX_X’ then ‘Имеет место, когда задача ожидает получения монопольной блокировки на текущее ключевое значение и монопольной блокировки диапазона между текущим и предыдущим ключами. Матрицу совместимости блокировок см. в представлении sys.dm_tran_locks (Transact-SQL).’
when ‘LCK_M_S’ then ‘Имеет место, когда задача ожидает получения совмещаемой блокировки. Матрицу совместимости блокировок см. в представлении sys.dm_tran_locks (Transact-SQL).’
when ‘LCK_M_SCH_M’ then ‘Имеет место, когда задача ожидает получения блокировки на изменение схемы. Матрицу совместимости блокировок см. в представлении sys.dm_tran_locks (Transact-SQL).’
when ‘LCK_M_SCH_S’ then ‘Имеет место, когда задача ожидает получения совмещаемой блокировки схемы. Матрицу совместимости блокировок см. в представлении sys.dm_tran_locks (Transact-SQL).’
when ‘LCK_M_SIU’ then ‘Имеет место, когда задача ожидает получения совмещаемой блокировки с намерением обновления. Матрицу совместимости блокировок см. в представлении sys.dm_tran_locks (Transact-SQL).’
when ‘LCK_M_SIX’ then ‘Имеет место, когда задача ожидает получения совмещаемой блокировки с намерением монопольного доступа. Матрицу совместимости блокировок см. в представлении sys.dm_tran_locks (Transact-SQL).’
when ‘LCK_M_U’ then ‘Имеет место, когда задача ожидает получения блокировки на обновление. Матрицу совместимости блокировок см. в представлении sys.dm_tran_locks (Transact-SQL).’
when ‘LCK_M_UIX’ then ‘Имеет место, когда задача ожидает получения блокировки на обновление с намерением монопольного доступа. Матрицу совместимости блокировок см. в представлении sys.dm_tran_locks (Transact-SQL).’
when ‘LCK_M_X’ then ‘Имеет место, когда задача ожидает получения блокировки на монопольный доступ. Матрицу совместимости блокировок см. в представлении sys.dm_tran_locks (Transact-SQL).’
when ‘LOGBUFFER’ then ‘Имеет место, когда задача ожидает освобождения пространства в буфере журнала для сохранения записи в журнал. Последовательные высокие значения могут указывать на то, что устройства записи в журнал не справляются с объемом записей, формируемых сервером.’
when ‘LOGGENERATION’ then ‘Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется.’
when ‘LOGMGR’ then ‘Имеет место, когда задача ожидает завершения каких-либо связанных с журналом внешних операций ввода-вывода перед тем, как закрыть журнал для закрытия базы данных.’
when ‘LOGMGR_FLUSH’ then ‘Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется.’
when ‘LOGMGR_QUEUE’ then ‘Имеет место, когда задача записи в журнал ожидает рабочих запросов.’
when ‘LOGMGR_RESERVE_APPEND’ then ‘Имеет место, когда задача ожидает проверки освобождения достаточного пространства для новой записи в журнал после его усечения. Для уменьшения времени этого ожидания попробуйте увеличить размер файлов журнала для затронутой базы данных.’
when ‘LOWFAIL_MEMMGR_QUEUE’ then ‘Имеет место при ожидании доступности памяти для использования.’
when ‘ДОПОЛНИТЕЛЬНО’ then ‘Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется.’
when ‘MSQL_DQ’ then ‘Имеет место, когда задача ожидает завершения операции распределенного запроса. Это используется для выявления потенциальных взаимоблокировок приложений MARS. Ожидание окончится по завершении вызова распределенного запроса.’
when ‘MSQL_XACT_MGR_MUTEX’ then ‘Имеет место, когда задача ожидает получения прав на владение диспетчером транзакций сеансов для выполнения транзакционной операции сеансового уровня.’
when ‘MSQL_XACT_MUTEX’ then ‘Имеет место в процессе синхронизации использования транзакции. Прежде чем запрос сможет использовать транзакцию, он должен получить объект взаимного исключения.’
when ‘MSQL_XP’ then ‘Имеет место, когда задача ожидает завершения расширенной хранимой процедуры. В SQL Server это состояние ожидания используется для выявления потенциальных взаимоблокировок приложений с режимом MARS. Ожидание окончится по завершении вызова расширенной хранимой процедуры.’
when ‘MSSEARCH’ then ‘Имеет место в процессе вызова полнотекстового поиска. Ожидание окончится по завершении операции полнотекстового поиска. Это указывает не на конфликт, а на длительность операций полнотекстового поиска.’
when ‘NET_WAITFOR_PACKET’ then ‘Имеет место при ожидании соединением сетевого пакета в процессе чтения из сети.’
when ‘OLEDB’ then ‘Имеет место при вызове SQL Server поставщика OLE DB для собственного клиента SQL Server. Этот тип ожидания не используется для синхронизации. Он указывает на длительность вызовов поставщика OLE DB.’
when ‘ONDEMAND_TASK_QUEUE’ then ‘Имеет место, когда фоновая задача ожидает запросов системных задач с высоким приоритетом. Длительное время ожидания указывает, что к процессу не было высокоприоритетных запросов, и причины для беспокойства нет.’
when ‘PAGEIOLATCH_DT’ then ‘Имеет место, когда задача ожидает кратковременной блокировки буфера, находящегося в состоянии запроса ввода-вывода. Запрос на кратковременную блокировку производится в режиме удаления. Длительное время ожидания может указывать на проблемы с дисковой подсистемой.’
when ‘PAGEIOLATCH_EX’ then ‘Имеет место, когда задача ожидает кратковременной блокировки буфера, находящегося в состоянии запроса ввода-вывода. Запрос на кратковременную блокировку производится в исключительном режиме. Длительное время ожидания может указывать на проблемы с дисковой подсистемой.’
when ‘PAGEIOLATCH_KP’ then ‘Имеет место, когда задача ожидает кратковременной блокировки буфера, находящегося в состоянии запроса ввода-вывода. Запрос на кратковременную блокировку производится в режиме удержания. Длительное время ожидания может указывать на проблемы с дисковой подсистемой.’
when ‘PAGEIOLATCH_NL’ then ‘Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется.’
when ‘PAGEIOLATCH_SH’ then ‘Имеет место, когда задача ожидает кратковременной блокировки буфера, находящегося в состоянии запроса ввода-вывода. Запрос на кратковременную блокировку производится в режиме общего доступа. Длительное время ожидания может указывать на проблемы с дисковой подсистемой.’
when ‘PAGEIOLATCH_UP’ then ‘Имеет место, когда задача ожидает кратковременной блокировки буфера, находящегося в состоянии запроса ввода-вывода. Запрос на кратковременную блокировку производится в режиме обновления. Длительное время ожидания может указывать на проблемы с дисковой подсистемой.’
when ‘PAGELATCH_DT’ then ‘Имеет место, когда задача ожидает кратковременной блокировки буфера, находящегося не в состоянии запроса ввода-вывода. Запрос на кратковременную блокировку производится в режиме удаления.’
when ‘PAGELATCH_EX’ then ‘Имеет место, когда задача ожидает кратковременной блокировки буфера, находящегося не в состоянии запроса ввода-вывода. Запрос на кратковременную блокировку производится в исключительном режиме.’
when ‘PAGELATCH_KP’ then ‘Имеет место, когда задача ожидает кратковременной блокировки буфера, находящегося не в состоянии запроса ввода-вывода. Запрос на кратковременную блокировку производится в режиме удержания.’
when ‘PAGELATCH_NL’ then ‘Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется.’
when ‘PAGELATCH_SH’ then ‘Имеет место, когда задача ожидает кратковременной блокировки буфера, находящегося не в состоянии запроса ввода-вывода. Запрос на кратковременную блокировку производится в режиме общего доступа.’
when ‘PAGELATCH_UP’ then ‘Имеет место, когда задача ожидает кратковременной блокировки буфера, не находящегося в состоянии запроса ввода-вывода. Запрос на кратковременную блокировку производится в режиме обновления.’
when ‘PARALLEL_BACKUP_QUEUE’ then ‘Имеет место при сериализации вывода инструкции RESTORE HEADERONLY, RESTORE FILELISTONLY или RESTORE LABELONLY.’
when ‘PREEMPTIVE_ABR’ then ‘Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется.’
when ‘PREEMPTIVE_AUDIT_ACCESS_EVENTLOG’ then ‘Происходит, если планировщик операционной системы SQLOS SQL Server переключается в режим с вытеснением, чтобы записать событие аудита в журнал событий Windows.’
when ‘PREEMPTIVE_AUDIT_ACCESS_SECLOG’ then ‘Происходит, если планировщик SQLOS переключается в режим с вытеснением, чтобы записать событие аудита в журнал безопасности Windows.’
when ‘PREEMPTIVE_CLOSEBACKUPMEDIA’ then ‘Происходит, если планировщик SQLOS переключается в режим с вытеснением, чтобы закрыть носители резервной копии.’
when ‘PREEMPTIVE_CLOSEBACKUPTAPE’ then ‘Происходит, если планировщик SQLOS переключается в режим с вытеснением, чтобы закрыть устройство резервного копирования на магнитной ленте.’
when ‘PREEMPTIVE_CLOSEBACKUPVDIDEVICE’ then ‘Происходит, если планировщик SQLOS переключается в режим с вытеснением, чтобы закрыть виртуальное устройство резервного копирования.’
when ‘PREEMPTIVE_CLUSAPI_CLUSTERRESOURCECONTROL’ then ‘Происходит, если планировщик SQLOS переключается в режим с вытеснением, чтобы выполнить операции отказоустойчивого кластера Windows.’
when ‘PREEMPTIVE_COM_COCREATEINSTANCE’ then ‘Происходит, если планировщик SQLOS переключается в режим с вытеснением, чтобы создать COM-объект.’
when ‘PREEMPTIVE_SOSTESTING’ then ‘Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется.’
when ‘PREEMPTIVE_STRESSDRIVER’ then ‘Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется.’
when ‘PREEMPTIVE_TESTING’ then ‘Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется.’
when ‘PREEMPTIVE_XETESTING’ then ‘Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется.’
when ‘PRINT_ROLLBACK_PROGRESS’ then ‘Применяется при ожидании завершения пользовательских процессов в базе данных, измененной с помощью заключительного предложения ALTER DATABASE. Дополнительные сведения см. в разделе ALTER DATABASE (Transact-SQL).’
when ‘QPJOB_KILL’ then ‘Указывает, что асинхронное автоматическое обновление статистики было отменено с помощью вызова команды KILL во время запуска на выполнение. Завершающий поток приостанавливается и начинает прослушивание команд KILL для своего запуска. Нормальное значение составляет менее 1 секунды.’
when ‘QPJOB_WAITFOR_ABORT’ then ‘Указывает, что асинхронное автоматическое обновление статистики было отменено с помощью вызова команды KILL во время выполнения. Обновление в данный момент завершено, но приостановлено до выполнения координации сообщений завершающих потоков. Это обычное, но редкое состояние, которое должно длиться очень короткое время. Нормальное значение составляет менее 1 секунды.’
when ‘QRY_MEM_GRANT_INFO_MUTEX’ then ‘Имеет место, когда средство управления памятью при выполнении запросов пытается управлять доступом к статичному списку предоставлений памяти. В этом списке содержатся сведения о текущей предоставленной памяти и ожидающих запросах на ее выделение. Данное состояние является стандартным при управлении доступом. Его ожидание не должно длиться долго. Если мьютекс не будет освобожден, все новые запросы, использующие память, перестанут отвечать.’
when ‘QUERY_ERRHDL_SERVICE_DONE’ then ‘Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется.’
when ‘QUERY_EXECUTION_INDEX_SORT_EVENT_OPEN’ then ‘Имеет место в определенных случаях, когда параллельно выполняется создание индекса вне сети, а различные выполняющие сортировку исполнители синхронизируют доступ к файлам сортировки.’
when ‘QUERY_NOTIFICATION_MGR_MUTEX’ then ‘Имеет место в процессе синхронизации очереди сборки мусора в диспетчере уведомлений о запросах.’
when ‘QUERY_NOTIFICATION_SUBSCRIPTION_MUTEX’ then ‘Имеет место в процессе синхронизации состояния транзакций в уведомлениях о запросах.’
when ‘QUERY_NOTIFICATION_TABLE_MGR_MUTEX’ then ‘Имеет место в процессе внутренней синхронизации диспетчера уведомлений о запросах.’
when ‘QUERY_NOTIFICATION_UNITTEST_MUTEX’ then ‘Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется.’
when ‘QUERY_OPTIMIZER_PRINT_MUTEX’ then ‘Имеет место в процессе синхронизации диагностического выхода оптимизатора запросов. Этот тип ожидания имеет место только в случае, если были включены настройки диагностики под руководством службы поддержки продуктов Microsoft.’
when ‘QUERY_TRACEOUT’ then ‘Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется.’
when ‘QUERY_WAIT_ERRHDL_SERVICE’ then ‘Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется.’
when ‘RECOVER_CHANGEDB’ then ‘Имеет место в процессе синхронизации состояния базы данных в режиме «горячего» резервирования.’
when ‘REPL_CACHE_ACCESS’ then ‘Имеет место в процессе синхронизации кэша статей репликации. В процессе таких ожиданий средство чтения журнала репликаций простаивает, а DDL-инструкции к опубликованной таблице блокируются.’
when ‘REPL_SCHEMA_ACCESS’ then ‘Имеет место в процессе синхронизации данных о версии схемы репликации. Это состояние имеет место в случаях, когда DDL-инструкции выполняются над реплицируемым объектом, а средство чтения журнала создает или использует схему с управлением версиями на основе вхождения DDL.’
when ‘REPLICA_WRITES’ then ‘Имеет место при ожидании задачей завершения записи страниц в моментальные снимки базы данных или реплики DBCC.’
when ‘REQUEST_DISPENSER_PAUSE’ then ‘Имеет место при ожидании задачей завершения всех текущих операций ввода-вывода, чтобы ввод-вывод в файл можно было приостановить для выполнения резервного копирования моментального снимка.’
when ‘REQUEST_FOR_DEADLOCK_SEARCH’ then ‘Имеет место в случае, когда монитор взаимоблокировок ожидает запуска следующего поиска взаимоблокировки. Это ожидаемое состояние между выявлениями взаимоблокировок, и длительное общее время ожидания этого ресурса не указывает на проблему.’
when ‘RESMGR_THROTTLED’ then ‘Имеет место, когда новый запрос поступает и повторяется в соответствии со значением параметра GROUP_MAX_REQUESTS.’
when ‘RESOURCE_QUEUE’ then ‘Имеет место в процессе синхронизации различных внутренних очередей ресурсов.’
when ‘RESOURCE_SEMAPHORE’ then ‘Имеет место в случае, когда запрос памяти из очереди не может быть выполнен немедленно из-за других параллельных запросов. Высокие значения ожиданий и времени ожидания могут указывать на чрезмерное количество параллельных запросов или чрезмерные объемы запрашиваемой памяти.’
when ‘RESOURCE_SEMAPHORE_MUTEX’ then ‘Имеет место в случае, когда запрос ожидает выполнения запроса на резервирование потока. Также имеет место при запросах на компиляцию и выделение памяти в процессе синхронизации.’
when ‘RESOURCE_SEMAPHORE_QUERY_COMPILE’ then ‘Имеет место в случае, когда количество параллельных компиляций запросов достигает предела повтора. Высокие значения ожиданий и времени ожидания могут указывать на чрезмерное количество компиляций, повторных компиляций или некэшируемых планов.’
when ‘RESOURCE_SEMAPHORE_SMALL_QUERY’ then ‘Имеет место в случае, когда небольшой запрос не может быть выполнен немедленно из-за других параллельных запросов. Время ожидания не должно превышать нескольких секунд, так как при невозможности выделения запрошенной памяти в течение нескольких секунд сервер передает запрос в главный пул памяти для запросов. Высокие значения ожиданий могут указывать на чрезмерное количество параллельных небольших запросов, в то время как главный пул памяти заблокирован ожидающими запросами.’
when ‘SEC_DROP_TEMP_KEY’ then ‘Имеет место после неудачной попытки удаления временного ключа безопасности перед повторной попыткой.’
when ‘SECURITY_MUTEX’ then ‘Имеет место при ожидании мьютексов, контролирующих доступ к глобальному списку поставщиков служб шифрования расширенного управления ключами и списку сеансов расширенного управления ключами, ограниченному областью сеанса.’
when ‘SEQUENTIAL_GUID’ then ‘Имеет место при получении нового последовательного значения идентификатора GUID.’
when ‘SERVER_IDLE_CHECK’ then ‘Имеет место в процессе синхронизации состояния простоя экземпляра SQL Server, в то время как монитор ресурсов пытается объявить экземпляр SQL Server простаивающим или пытающимся пробудиться.’
when ‘SHUTDOWN’ then ‘Имеет место, когда инструкция завершения работы ожидает закрытия активных соединений.’
when ‘SLEEP_BPOOL_FLUSH’ then ‘Имеет место при повторе контрольной точкой выпуска новых операций ввода-вывода во избежание переполнения дисковой подсистемы.’
when ‘SLEEP_DBSTARTUP’ then ‘Имеет место в процессе запуска базы данных при ожидании восстановления всех баз данных.’
when ‘SLEEP_DCOMSTARTUP’ then ‘Имеет место однократно в большинстве случаев в процессе запуска экземпляра SQL Server при ожидании завершения инициализации DCOM.’
when ‘SLEEP_MSDBSTARTUP’ then ‘Имеет место при ожидании SQL Trace запуска базы данных msdb.’
when ‘SLEEP_SYSTEMTASK’ then ‘Имеет место при запуске фоновой задачи во время ожидания запуска базы данных tempdb.’
when ‘SLEEP_TASK’ then ‘Имеет место в случае, когда задача находится в неактивном состоянии во время ожидания универсального события.’
when ‘SLEEP_TEMPDBSTARTUP’ then ‘Имеет место при ожидании задачей запуска базы данных tempdb.’
when ‘SNI_CRITICAL_SECTION’ then ‘Имеет место в процессе внутренней синхронизации в сетевых компонентах SQL Server.’
when ‘SNI_HTTP_WAITFOR_0_DISCON’ then ‘Имеет место при завершении работы SQL Server во время ожидания завершения имеющихся HTTP-соединений.’
when ‘SNI_LISTENER_ACCESS’ then ‘Имеет место при ожидании обновления изменения состояния узлов доступа к неоднородной памяти (NUMA). Доступ к изменению состояния сериализован.’
when ‘SNI_TASK_COMPLETION’ then ‘Имеет место при ожидании завершения всех задач во время изменения состояния узла NUMA.’
when ‘SOAP_READ’ then ‘Имеет место при ожидании завершения операции чтения HTTP-данных из сети.’
when ‘SOAP_WRITE’ then ‘Имеет место при ожидании завершения операции записи HTTP-данных по сети.’
when ‘SOS_CALLBACK_REMOVAL’ then ‘Имеет место при выполнении синхронизации списка обратных вызовов с целью удаления обратного вызова. Изменение этого счетчика после выполнения инициализации сервера не ожидается.’
when ‘SOS_DISPATCHER_MUTEX’ then ‘Имеет место при выполнении внутренней синхронизации пула диспетчеров. Это также относится и к настройке пула.’
when ‘SOS_LOCALALLOCATORLIST’ then ‘Имеет место в процессе внутренней синхронизации в диспетчере памяти SQL Server.’
when ‘SOS_MEMORY_USAGE_ADJUSTMENT’ then ‘Имеет место при распределении памяти между пулами.’
when ‘SOS_OBJECT_STORE_DESTROY_MUTEX’ then ‘Имеет место в процессе внутренней синхронизации в пулах памяти во время удаления объектов из пула.’
when ‘SOS_PROCESS_AFFINITY_MUTEX’ then ‘Имеет место в процессе синхронизации доступа для обработки настроек схожести.’
when ‘SOS_RESERVEDMEMBLOCKLIST’ then ‘Имеет место в процессе внутренней синхронизации в диспетчере памяти SQL Server.’
when ‘SOS_SCHEDULER_YIELD’ then ‘Имеет место, когда задача добровольно отказывается от выполнения планировщиком в пользу других задач. В течение этого ожидания задача ожидает обновления своего такта.’
when ‘SOS_SMALL_PAGE_ALLOC’ then ‘Имеет место при выделении и освобождении памяти, управляемой некоторыми объектами памяти.’
when ‘SOS_STACKSTORE_INIT_MUTEX’ then ‘Имеет место в процессе синхронизации внутренней инициализации хранилища.’
when ‘SOS_SYNC_TASK_ENQUEUE_EVENT’ then ‘Имеет место при запуске задачи в синхронном режиме. Большинство задач в SQL Server запускаются в асинхронном режиме, при котором управление возвращается процессу, запустившему задачу, немедленно после помещения запроса на задачу в рабочую очередь.’
when ‘SOS_VIRTUALMEMORY_LOW’ then ‘Имеет место при выделении памяти в случае ожидания освобождения виртуальной памяти менеджером ресурсов.’
when ‘SOSHOST_EVENT’ then ‘Имеет место в случае, когда включенный компонент, например среда CLR, ожидает объекта синхронизации событий SQL Server.’
when ‘SOSHOST_INTERNAL’ then ‘Имеет место в процессе синхронизации обратных вызовов диспетчера памяти, используемых включенными компонентами, например средой CLR.’
when ‘SOSHOST_MUTEX’ then ‘Имеет место в случае, когда включенный компонент, например среда CLR, ожидает объекта синхронизации объектов взаимных исключений SQL Server.’
when ‘SOSHOST_RWLOCK’ then ‘Имеет место в случае, когда включенный компонент, например среда CLR, ожидает объекта синхронизации чтения-записи SQL Server.’
when ‘SOSHOST_SEMAPHORE’ then ‘Имеет место в случае, когда включенный компонент, например среда CLR, ожидает объекта синхронизации семафоров SQL Server.’
when ‘SOSHOST_SLEEP’ then ‘Имеет место в случае, когда включенная задача находится в неактивном состоянии во время ожидания универсального события. Включенные задачи используются включенными компонентами, например средой CLR.’
when ‘SOSHOST_TRACELOCK’ then ‘Имеет место в процессе синхронизации доступа к потокам трассировки.’
when ‘SOSHOST_WAITFORDONE’ then ‘Имеет место в случае, когда включенный компонент, например среда CLR, ожидает завершения выполнения задачи.’
when ‘SQLCLR_APPDOMAIN’ then ‘Имеет место в случае, когда среда CLR ожидает завершения запуска домена приложений.’
when ‘SQLCLR_ASSEMBLY’ then ‘Имеет место при ожидании доступа к списку загруженных сборок в домене приложений.’
when ‘SQLCLR_DEADLOCK_DETECTION’ then ‘Имеет место в случае, когда среда CLR ожидает завершения выявления взаимоблокировок.’
when ‘SQLCLR_QUANTUM_PUNISHMENT’ then ‘Имеет место в случае повтора задачи CLR из-за превышения такта на выполнение. Повтор производится с целью снижения влияния задачи, интенсивно использующей ресурсы, на другие задачи.’
when ‘SQLSORT_NORMMUTEX’ then ‘Имеет место в процессе внутренней синхронизации во время инициализации внутренних структур сортировки.’
when ‘SQLSORT_SORTMUTEX’ then ‘Имеет место в процессе внутренней синхронизации во время инициализации внутренних структур сортировки.’
when ‘SQLTRACE_BUFFER_FLUSH’ then ‘Имеет место, когда задача ожидает сохранения фоновой задачей буферов трассировки на диск каждые четыре секунды.’
when ‘SQLTRACE_LOCK’ then ‘Имеет место в процессе синхронизации буферов трассировки во время трассировки файлов.’
when ‘SQLTRACE_SHUTDOWN’ then ‘Имеет место в случае, когда операция завершения трассировки ожидает завершения имеющихся событий трассировки.’
when ‘SQLTRACE_WAIT_ENTRIES’ then ‘Имеет место в случае, когда очередь событий SQL Trace ожидает поступления пакетов в очередь.’
when ‘SRVPROC_SHUTDOWN’ then ‘Имеет место в случае, когда процесс завершения работы ожидает освобождения внутренних ресурсов для корректного завершения работы.’
when ‘TEMPOBJ’ then ‘Имеет место при синхронизации удалений временных объектов. Этот тип ожидания является редким и имеет место только в случае, если задача запросила монопольный доступ на удаление таблиц temp.’
when ‘THREADPOOL’ then ‘Имеет место, когда задача ожидает запуска исполнителем. Это ожидание может указывать на недостаточное число исполнителей или на то, что выполнение пакетов занимает слишком много времени, поэтому число доступных исполнителей уменьшилось из-за необходимости обработки других пакетов.’
when ‘TIMEPRIV_TIMEPERIOD’ then ‘Имеет место при выполнении внутренней синхронизации таймера расширенных событий.’
when ‘TRACEWRITE’ then ‘Имеет место в случае, когда поставщик трассировки наборов строк SQL Trace ожидает либо свободного буфера, либо буфера с событиями для обработки.’
when ‘TRAN_MARKLATCH_DT’ then ‘Имеет место при ожидании кратковременной блокировки режима удаления для кратковременной блокировки метки транзакции. Кратковременные блокировки меток транзакций используются для синхронизации фиксаций с помеченными транзакциями.’
when ‘TRAN_MARKLATCH_EX’ then ‘Имеет место при ожидании кратковременной блокировки монопольного режима для помеченной транзакции. Кратковременные блокировки меток транзакций используются для синхронизации фиксаций с помеченными транзакциями.’
when ‘TRAN_MARKLATCH_KP’ then ‘Имеет место при ожидании кратковременной блокировки режима удержания для помеченной транзакции. Кратковременные блокировки меток транзакций используются для синхронизации фиксаций с помеченными транзакциями.’
when ‘TRAN_MARKLATCH_NL’ then ‘Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется.’
when ‘TRAN_MARKLATCH_SH’ then ‘Имеет место при ожидании кратковременной блокировки общего режима для помеченной транзакции. Кратковременные блокировки меток транзакций используются для синхронизации фиксаций с помеченными транзакциями.’
when ‘TRAN_MARKLATCH_UP’ then ‘Имеет место при ожидании кратковременной блокировки режима обновления для помеченной транзакции. Кратковременные блокировки меток транзакций используются для синхронизации фиксаций с помеченными транзакциями.’
when ‘TRANSACTION_MUTEX’ then ‘Имеет место в процессе синхронизации доступа к транзакции из нескольких пакетов.’
when ‘UTIL_PAGE_ALLOC’ then ‘Имеет место в случае, когда операции просмотра журналов транзакций ожидают освобождения памяти в условиях чрезмерной загрузки.’
when ‘VIA_ACCEPT’ then ‘Имеет место при завершении соединения с поставщиком VIA во время запуска.’
when ‘VIEW_DEFINITION_MUTEX’ then ‘Имеет место в процессе синхронизации доступа к кэшированным определениям представлений.’
when ‘WAIT_FOR_RESULTS’ then ‘Имеет место при ожидании срабатывания триггера уведомления запроса.’
when ‘WAITFOR’ then ‘Имеет место как результат выполнения инструкции WAITFOR Transact-SQL. Длительность ожидания определяется параметрами инструкции. Это ожидание инициируется пользователем.’
when ‘WAITFOR_TASKSHUTDOWN’ then ‘Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется.’
when ‘WAITSTAT_MUTEX’ then ‘Имеет место в процессе синхронизации доступа к коллекции статистик, используемой для заполнения представления sys.dm_os_wait_stats.’
when ‘WCC’ then ‘Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется.’
when ‘WORKTBL_DROP’ then ‘Имеет место в случае приостановки перед повторной попыткой, после неудачной попытки удаления рабочей таблицы.’
when ‘WRITE_COMPLETION’ then ‘Имеет место при выполнении операции записи.’
when ‘WRITELOG’ then ‘Имеет место при ожидании завершения записи журнала. Обычно запись журнала вызывается такими операциями, как контрольные точки и фиксации транзакций.’
when ‘XACT_OWN_TRANSACTION’ then ‘Имеет место при ожидании получения прав на владение транзакцией.’
when ‘XACT_RECLAIM_SESSION’ then ‘Имеет место при ожидании отказа текущего владельца сеанса от владения им.’
when ‘XACTLOCKINFO’ then ‘Имеет место в процессе синхронизации доступа к списку блокировок для транзакции. В дополнение к самой транзакции к списку имеют доступ такие операции, как выявление взаимоблокировок и миграция блокировок во время разбиения страниц.’
when ‘XACTWORKSPACE_MUTEX’ then ‘Имеет место в процессе синхронизации исключений из транзакции, а также синхронизации числа блокировок базы данных между прикрепленными участниками транзакции.’
when ‘XE_BUFFERMGR_ALLPROCESSED_EVENT’ then ‘Происходит, если буферы сеанса расширенных событий записываются в целевые объекты. Это происходит в фоновом потоке.’
when ‘XE_BUFFERMGR_FREEBUF_EVENT’ then ‘Происходит, если верно любое из следующих условий. -Сеанс расширенных событий настроен так, чтобы не происходила потеря ни одного события, и все буферы в сеансе в настоящее время полны. Это может указывать, что буферы для сеанса расширенных событий слишком малы или должны быть секционированы. -В ходе операций аудита возникают задержки. Это может свидетельствовать о том, что диск, на который записываются результаты операций аудита, является узким местом.’
when ‘XE_DISPATCHER_CONFIG_SESSION_LIST’ then ‘Происходит при запуске или остановке сеанса расширенных событий, в котором используются асинхронные целевые объекты. Этот случай ожидания указывает на то, что имеет место одно из следующих условий. -Сеанс расширенных событий регистрируется с пулом фонового потока. -Пул фонового потока вычисляет необходимое количество потоков на основе текущей нагрузки.’
when ‘XE_DISPATCHER_JOIN’ then ‘Происходит при завершении фонового потока, который используется для сеансов расширенных событий.’
when ‘XE_DISPATCHER_WAIT’ then ‘Происходит, если фоновый поток, который используется для сеансов расширенных событий, ожидает обработки буферов событий.’
when ‘XE_MODULEMGR_SYNC’ then ‘Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется.’
when ‘XE_OLS_LOCK’ then ‘Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется.’
when ‘XE_PACKAGE_LOCK_BACKOFF’ then ‘Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется.’
else ‘***’
end as ‘Description’
FROM sys.dm_os_wait_stats,#dm_os_wait_stats,SumWait
where sys.dm_os_wait_stats.wait_type=#dm_os_wait_stats.wait_type
and sys.dm_os_wait_stats.wait_time_ms-#dm_os_wait_stats.wait_time_ms>0
order by sys.dm_os_wait_stats.wait_time_ms-#dm_os_wait_stats.wait_time_ms DESC

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *