sys.dm_os_wait_stats

Изменения: 14 апреля 2006 г.

Возвращает данные о случаях ожидания, обнаруженных выполнявшимися потоками. Это агрегированное представление можно использовать для диагностики проблем производительности как всего SQL Server, так и конкретных запросов и пакетов.

Имя столбца Тип данных Описание

wait_type

nvarchar(60)

Имя типа ожидания.

waiting_tasks_count

bigint

Число ожиданий данного типа. Этот счетчик наращивается каждый раз при начале ожидания.

wait_time_ms

bigint

Общее время ожидания данного типа в миллисекундах. Это время включает длительность signal_wait_time_ms.

max_wait_time_ms

bigint

Максимальное время ожидания данного типа.

signal_wait_time_ms

bigint

Разница между временем сигнализации ожидающего потока и временем начала его выполнения.

Разрешения

Необходимо разрешение VIEW SERVER STATE для сервера.

Замечания

Типы ожиданий

  • Ожидания ресурсов
    Ожидание ресурсов имеет место, когда исполнитель запрашивает доступ к ресурсу, который недоступен по причине его использования другим исполнителем или пока еще недоступен. Примерами ожидания ресурсов являются блокировки, кратковременные блокировки, сетевые ожидания и ожидания дискового ввода-вывода. Ожидания блокировок и кратковременных блокировок представляют собой ожидания объектов синхронизации.
  • Ожидания очередей
    Ожидание очереди имеет место, когда исполнитель простаивает, ожидая назначения работы. Ожидания очередей чаще всего наблюдаются в системных фоновых задачах, таких как мониторинг взаимоблокировок или очистка удаленных записей. Такие задачи будут ожидать размещения запросов работы в рабочей очереди. Ожидания очередей могут также периодически становиться активными, даже если в очередь не помещались новые пакеты.
  • Внешние ожидания
    Внешнее ожидание имеет место, когда исполнитель SQL Server ожидает завершения внешнего события, например вызова расширенной хранимой процедуры или запроса к связанному серверу. При диагностике критических препятствий следует помнить, что внешние ожидания не всегда означают простой исполнителя, так как этот поток может в данный момент выполнять какой-либо внешний код.

Представление sys.dm_os_wait_stats отображает время выполненных ожиданий. Текущие ожидания в этом динамическом административном представлении не отображаются.

Исполнитель SQL Server не считается ожидающим при выполнении любого из следующих условий.

  • Ресурс становится доступным.
  • Очередь не является пустой.
  • Завершается внешний процесс.

Хотя поток больше не находится в ожидании, он необязательно будет запущен немедленно. Дело в том, что такой поток сначала помещается в очередь работоспособных исполнителей и должен ожидать такта для запуска по расписанию.

В SQL Server 2005 счетчики времени ожидания представляют собой значения типа bigint, поэтому их переполнение не столь вероятно, как переполнение соответствующих счетчиков в предыдущих версиях SQL Server.

Значения времени конкретных типов ожиданий в процессе выполнения запроса могут указывать на узкие места или точки простоя в запросе. Подобным образом высокие значения времени ожидания или числа ожиданий по всему серверу могут указывать на узкие места или пробки во взаимодействии запросов на экземпляре сервера. Например, ожидания, связанные с блокировкой, указывают на конфликты запросов на данные; ожидания, связанные с кратковременными блокировками ввода-вывода страниц, — на медленные значения времени ответа ввода-вывода; ожидания, связанные с кратковременными блокировками обновления страниц, указывают на неправильную файловую структуру.

Содержимое данного динамического административного представления можно очистить, запустив следующую команду.

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

Эта команда сбрасывает все счетчики на 0.

ms179984.note(ru-ru,SQL.90).gifПримечание.
Данная статистика не сохраняется при перезапуске SQL Server, и все данные накапливаются с момента последнего сброса статистики или перезапуска сервера.

В следующей таблице перечислены типы ожиданий, с которыми могут сталкиваться задачи.

Тип ожидания Описание

ASYNC_DISKPOOL_LOCK

Имеет место при попытке синхронизации параллельных потоков, выполняющих такие задачи, как создание или инициализация файла.

ASYNC_IO_COMPLETION

Имеет место, когда для своего завершения задача ожидает ввода-вывода.

ASYNC_NETWORK_IO

Имеет место при операциях сетевой записи, когда задача блокируется из сети. Убедитесь, что клиент обрабатывает данные с сервера.

BACKUP

Имеет место, когда задача блокируется как часть процесса резервного копирования.

BACKUP_CLIENTLOCK

Только для внутреннего использования.

BACKUP_OPERATOR

Имеет место при ожидании задачей монтирования ленты. Для просмотра состояния ленты служит запрос sys.dm_io_backup_tapes. Если операция монтирования не назначена к выполнению, этот тип ожидания может указывать на аппаратную проблему накопителя на магнитной ленте.

BACKUPBUFFER

Имеет место при ожидании задачей резервного копирования данных или буфера для их записи. Этот тип встречается редко, преимущественно при ожидании задачей монтирования магнитной ленты.

BACKUPIO

Имеет место при ожидании задачей резервного копирования данных или буфера для их записи. Этот тип встречается редко, преимущественно при ожидании задачей монтирования магнитной ленты.

BACKUPTHREAD

Имеет место, когда для своего завершения задача ожидает завершения задачи резервного копирования. Время ожидания может быть длительным, от нескольких минут до нескольких часов. Если задача, выполнение которой ожидается, находится в процессе ввода-вывода, этот тип не указывает на проблему.

BAD_PAGE_PROCESS

Имеет место, когда фоновый регистратор сбойных страниц пытается избежать запуска чаще, чем каждые пять секунд. Чрезмерное количество сбойных страниц вызывает частые запуски регистратора.

BROKER_CONNECTION_RECEIVE_TASK

Имеет место при ожидании доступа для получения сообщения на конечной точке соединения. Доступ на получение к конечной точке сериализуется.

BROKER_ENDPOINT_STATE_MUTEX

Имеет место при конфликте доступа к состоянию конечной точки соединения компонента Service Broker. Доступ к состоянию изменений сериализуется.

BROKER_EVENTHANDLER

Имеет место при ожидании задачи в первичном обработчике событий компонента Service Broker. Это должно длиться очень короткое время.

BROKER_INIT

Имеет место при инициализации компонента Service Broker в каждой из активных баз данных. Это не должно происходить часто.

BROKER_MASTERSTART

Имеет место, когда задача ожидает запуска первичного обработчика событий компонента Service Broker. Это должно длиться очень короткое время.

BROKER_RECEIVE_WAITFOR

Имеет место при ожидании RECEIVE WAITFOR. Это стандартная ситуация, если нет готовых к получению сообщений.

BROKER_REGISTERALLENDPOINTS

Имеет место в процессе инициализации конечной точки соединения компонента Service Broker. Это должно длиться очень короткое время.

BROKER_SHUTDOWN

Имеет место при запланированном завершении работы компонента Service Broker. Это ожидание обычно длится короткое время, если вообще имеет место.

BROKER_TRANSMITTER

Имеет место при ожидании передачи сообщений компонентом Service Broker.

BUILTIN_HASHKEY_MUTEX

Может иметь место после запуска экземпляра, во время инициализации внутренних структур данных. После инициализации структур данных повторяться не будет.

CHECKPOINT_QUEUE

Имеет место при ожидании задачей контрольных точек следующего запроса контрольной точки.

CHKPT

Имеет место при запуске сервера для уведомления потока контрольных точек о возможности его запуска.

CLR_AUTO_EVENT

Имеет место, когда задача в данный момент производит выполнение среды CLR и ожидает инициации конкретного автособытия.

CLR_CRST

Имеет место, когда задача в данный момент производит выполнение среды CLR и ожидает ввода критической секции задачи, используемой в данный момент другой задачей.

CLR_JOIN

Имеет место, когда задача в данный момент производит выполнение среды CLR и ожидает завершения другой задачи. Такое состояние ожидания имеет место при соединении задач.

CLR_MANUAL_EVENT

Имеет место, когда задача в данный момент производит выполнение среды CLR и ожидает инициации конкретного ручного события.

CLR_MONITOR

Имеет место, когда задача в данный момент производит выполнение среды CLR и ожидает получения блокировки мониторинга.

CLR_RWLOCK_READER

Имеет место, когда задача в данный момент производит выполнение среды CLR и ожидает блокировки модуля чтения.

CLR_RWLOCK_WRITER

Имеет место, когда задача в данный момент производит выполнение среды CLR и ожидает блокировки модуля записи.

CLR_SEMAPHORE

Имеет место, когда задача в данный момент производит выполнение среды CLR и ожидает семафора.

CLR_TASK_START

Имеет место при ожидании задачей CLR выполнения запуска.

CMEMTHREAD

Имеет место, когда задача ожидает объекта памяти, безопасного для использования потоками. Время ожидания может возрасти при конфликтах между несколькими задачами, пытающимися выделить память через один и тот же объект памяти.

CURSOR

Только для внутреннего использования.

CURSOR_ASYNC

Только для внутреннего использования.

CXPACKET

Имеет место при попытке синхронизации итератора обмена обработчика запросов. Можно попытаться снизить степень параллелизма, если конфликты такого типа становятся проблемой.

DBMIRROR_DBM_EVENT

Только для внутреннего использования.

DBMIRROR_DBM_MUTEX

Только для внутреннего использования.

DBMIRROR_EVENTS_QUEUE

Имеет место при ожидании обработки событий в процессе зеркального отображения базы данных.

DBMIRROR_SEND

Имеет место, когда задача ожидает очистки резервного журнала коммуникаций сетевого уровня для получения возможности отправки сообщений. Указывает на начало переполнения уровня коммуникаций, что повлияет на пропускную способность зеркального отображения базы данных.

DBMIRROR_WORKER_QUEUE

Указывает, что рабочая задача зеркального отображения базы данных ожидает дальнейшей работы.

DBMIRRORING_CMD

Имеет место, когда задача ожидает сохранения записей журнала на диск. Это состояние ожидания обычно занимает длительные периоды времени.

DBTABLE

Только для внутреннего использования.

DEADLOCK_ENUM_MUTEX

Имеет место, когда монитор взаимоблокировок и представление sys.dm_os_waiting_tasks пытаются удостовериться, что SQL Server не запустил несколько поисков взаимоблокировки одновременно.

DEADLOCK_TASK_SEARCH

Большое время ожидания этого ресурса указывает на то, что сервер выполняет запросы в верхней части представления sys.dm_os_waiting_tasks и что эти запросы блокируют поиск взаимоблокировок монитором взаимоблокировки. Такой тип ожидания используется только монитором взаимоблокировки. Запросы в верхней части представления sys.dm_os_waiting_tasks используют ожидание DEADLOCK_ENUM_MUTEX.

DEBUG

Имеет место в процессе отладки Transact-SQL и CLR с целью внутренней синхронизации.

DISABLE_VERSIONING

Имеет место, когда SQL Server опрашивает диспетчер транзакции версий с целью проверки, не является ли метка времени самой ранней активной транзакции более поздней, чем метка времени начала изменения состояния. При этом варианте все транзакции моментальных снимков, запущенные до запуска инструкции ALTER DATABASE, завершаются. Это состояние ожидания используется в случае, когда SQL Server отключает управление версиями с помощью инструкции ALTER DATABASE.

DISKIO_SUSPEND

Имеет место, когда задача ожидает доступа к файлу при активном внешнем резервном копировании. Это регистрируется для каждого ожидающего пользовательского процесса. Значение, большее 5 на один пользовательский процесс, может указывать на то, что внешнее резервное копирование занимает слишком много времени.

DLL_LOADING_MUTEX

Имеет место один раз при ожидании загрузки DLL-библиотеки синтаксического анализатора XML.

DROPTEMP

Имеет место между попытками удаления временного объекта, если предыдущая попытка закончилась неудачно. Длительность ожидания растет экспоненциально с каждой неудачной попыткой удаления.

DTC

Имеет место, когда задача ожидает события, используемого для управления переходом состояний. Это состояние контролирует, когда осуществляется восстановление транзакций службы координатора распределенных транзакций Microsoft (MS DTC) после получения SQL Server уведомления о недоступности службы MS DTC.

Данное состояние также описывает задачу, ожидающую инициации фиксирования транзакции MS DTC SQL Server, а SQL Server при этом ожидает завершения фиксирования транзакции MS DTC.

DTC_ABORT_REQUEST

Имеет место в течение сеанса исполнителя службы MS DTC, когда сеанс ожидает получения владения транзакцией MS DTC. После получения службой MS DTC владения транзакцией сеанс может произвести ее откат. В общем случае сеанс будет ожидать другого сеанса, использующего транзакцию.

DTC_RESOLVE

Имеет место, когда в ходе транзакции между базами данных задача восстановления ожидает базу данных master, чтобы можно было запросить результат транзакции.

DTC_STATE

Имеет место, когда задача ожидает события, защищающего изменения внутреннего объекта глобального состояния службы MS DTC. Это состояние должно держаться в течение очень короткого промежутка времени.

DTC_TMDOWN_REQUEST

Имеет место в рабочем сеансе MS DTC, когда SQL Server получает уведомление о недоступности службы MS DTC. Сначала исполнитель ждет начала процесса восстановления MS DTC. Затем он ждет получения результата распределенной транзакции, над которой он работал. Это может продолжаться до тех пор, пока соединение со службой MS DTC не будет восстановлено.

DTC_WAITFOR_OUTCOME

Имеет место, когда задачи восстановления ждут активизации службы MS DTC для получения возможности разрешения подготовленных транзакций.

DUMP_LOG_COORDINATOR

Имеет место, когда главная задача ожидает формирования данных подзадачей. Обычно это состояние не наблюдается. Длительное время ожидания указывает на непредвиденную блокировку. Следует изучить поведение подзадачи.

EC

Только для внутреннего использования.

EE_PMOLOCK

Имеет место в процессе синхронизации определенных типов выделения памяти в ходе выполнения инструкции.

EE_SPECPROC_MAP_INIT

Имеет место в процессе синхронизации создания внутренней хэш-таблицы процедуры. Это может произойти только при первом доступе к хэш-таблице после запуска экземпляра SQL Server 2005.

ENABLE_VERSIONING

Имеет место, когда SQL Server ожидает завершения всех транзакций обновления базы данных перед объявлением готовности базы к переходу в разрешенное состояние изоляции моментальных снимков. Это состояние используется в случае, если SQL Server разрешает изоляцию моментальных снимков с помощью инструкции ALTER DATABASE.

ERROR_REPORTING_MANAGER

Имеет место в процессе синхронизации нескольких параллельных инициализаций журнала ошибок.

EXCHANGE

Имеет место в процессе синхронизации в итераторе обмена обработчика запросов при параллельных запросах.

EXECSYNC

Имеет место в процессе синхронизации в обработчике запросов в областях, не относящихся к итератору обмена, при параллельных запросах. Примерами таких областей являются битовые карты, большие двоичные объекты (LOB) и итератор подкачки. Это состояние ожидания может часто использоваться объектами LOB.

FAILPOINT

Только для внутреннего использования.

FCB_REPLICA_READ

Имеет место при синхронизации операций чтения разреженного файла моментального снимка (или временного моментального снимка, созданного с помощью DBCC).

FCB_REPLICA_WRITE

Имеет место при синхронизации помещения страницы или запроса страницы из разреженного файла моментального снимка (или временного моментального снимка, созданного с помощью DBCC).

FT_RESTART_CRAWL

Имеет место в случае, когда требуется перезапуск полнотекстового сканирования с последней надежной точки для восстановления после временного сбоя. Ожидание позволяет рабочим задачам, работающим в данный момент над этим заполнением, завершиться или завершить текущий этап.

FT_RESUME_CRAWL

Только для внутреннего использования.

FULLTEXT GATHERER

Имеет место в процессе синхронизации полнотекстовых операций.

HTTP_ENDPOINT_COLLCREATE

Только для внутреннего использования.

HTTP_ENUMERATION

Имеет место при запуске системы для перечисления конечных точек HTTP с целью запуска протокола HTTP.

HTTP_START

Имеет место при ожидании соединением завершения инициализации HTTP.

IMP_IMPORT_MUTEX

Только для внутреннего использования.

IMPPROV_IOWAIT

Имеет место, когда SQL Server ожидает завершения ввода-вывода при массовой загрузке.

INDEX_USAGE_STATS_MUTEX

Только для внутреннего использования.

IO_AUDIT_MUTEX

Имеет место в процессе синхронизации буферов событий трассировки.

IO_COMPLETION

Имеет место при ожидании завершения операций ввода-вывода. Этот тип ожидания обычно не относится к операциям ввода-вывода страниц данных. Ожидания завершения ввода-вывода страниц данных отображаются как PAGEIOLATCH_*.

KSOURCE_WAKEUP

Используется задачей управления службами при ожидании запросов от диспетчера управления службами. Ожидание обычно длится долго и не указывает на проблему.

KTM_ENLISTMENT

Только для внутреннего использования.

KTM_RECOVERY_MANAGER

Только для внутреннего использования.

KTM_RECOVERY_RESOLUTION

Только для внутреннего использования.

LATCH_DT

Имеет место при ожидании кратковременной блокировки DT (удаления). Не включает в себя буферные кратковременные блокировки или кратковременные блокировки меток транзакции. Список ожиданий LATCH_* содержится в представлении sys.dm_os_latch_stats. Обратите внимание на то, что в представлении sys.dm_os_latch_stats ожидания LATCH_NL, LATCH_SH, LATCH_UP, LATCH_EX и LATCH_DT сгруппированы.

LATCH_EX

Имеет место при ожидании кратковременной блокировки EX (монопольной). Не включает в себя буферные кратковременные блокировки или кратковременные блокировки меток транзакции. Список ожиданий LATCH_* содержится в представлении sys.dm_os_latch_stats. Обратите внимание на то, что в представлении sys.dm_os_latch_stats ожидания LATCH_NL, LATCH_SH, LATCH_UP, LATCH_EX и LATCH_DT сгруппированы.

LATCH_KP

Имеет место при ожидании кратковременной блокировки KP (удержания). Не включает в себя буферные кратковременные блокировки или кратковременные блокировки меток транзакции. Список ожиданий LATCH_* содержится в представлении sys.dm_os_latch_stats. Обратите внимание на то, что в представлении sys.dm_os_latch_stats ожидания LATCH_NL, LATCH_SH, LATCH_UP, LATCH_EX и LATCH_DT сгруппированы.

LATCH_NL

Только для внутреннего использования.

LATCH_SH

Имеет место при ожидании кратковременной блокировки SH (коллективной). Не включает в себя буферные кратковременные блокировки или кратковременные блокировки меток транзакции. Список ожиданий LATCH_* содержится в представлении sys.dm_os_latch_stats. Обратите внимание на то, что в представлении sys.dm_os_latch_stats ожидания LATCH_NL, LATCH_SH, LATCH_UP, LATCH_EX и LATCH_DT сгруппированы.

LATCH_UP

Имеет место при ожидании кратковременной блокировки UP (обновления). Не включает в себя буферные кратковременные блокировки или кратковременные блокировки меток транзакции. Список ожиданий LATCH_* содержится в представлении sys.dm_os_latch_stats. Обратите внимание на то, что в представлении sys.dm_os_latch_stats ожидания LATCH_NL, LATCH_SH, LATCH_UP, LATCH_EX и LATCH_DT сгруппированы.

LAZYWRITER_SLEEP

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

LCK_M_BU

Имеет место, когда задача ожидает получения блокировки для массового обновления (BU). Матрицу совместимости блокировок см. в представлении sys.dm_tran_locks.

LCK_M_IS

Имеет место, когда задача ожидает получения блокировки с намерением коллективного доступа (IS). Матрицу совместимости блокировок см. в представлении sys.dm_tran_locks.

LCK_M_IU

Имеет место, когда задача ожидает получения блокировки с намерением обновления (IU). Матрицу совместимости блокировок см. в представлении sys.dm_tran_locks.

LCK_M_IX

Имеет место, когда задача ожидает получения блокировки с намерением монопольного доступа (IX). Матрицу совместимости блокировок см. в представлении sys.dm_tran_locks.

LCK_M_RIn_NL

Имеет место, когда задача ожидает получения блокировки типа NULL на текущее ключевое значение и блокировки вставки диапазона между текущим и предыдущим ключами. Блокировка типа NULL на ключ — это блокировка с немедленным снятием. Матрицу совместимости блокировок см. в представлении sys.dm_tran_locks.

LCK_M_RIn_S

Имеет место, когда задача ожидает получения совмещаемой блокировки на текущее ключевое значение и блокировки вставки диапазона между текущим и предыдущим ключами. Матрицу совместимости блокировок см. в представлении sys.dm_tran_locks.

LCK_M_RIn_U

Задача ожидает получения блокировки на обновление текущего ключевого значения и блокировки вставки диапазона между текущим и предыдущим ключами. Матрицу совместимости блокировок см. в представлении sys.dm_tran_locks.

LCK_M_RIn_X

Имеет место, когда задача ожидает получения монопольной блокировки на текущее ключевое значение и блокировки вставки диапазона между текущим и предыдущим ключами. Матрицу совместимости блокировок см. в представлении sys.dm_tran_locks.

LCK_M_RS_S

Имеет место, когда задача ожидает получения совмещаемой блокировки на текущее ключевое значение и совмещаемой блокировки диапазона между текущим и предыдущим ключами. Матрицу совместимости блокировок см. в представлении sys.dm_tran_locks.

LCK_M_RS_U

Имеет место, когда задача ожидает получения блокировки обновления текущего ключевого значения и блокировки обновления диапазона между текущим и предыдущим ключами. Матрицу совместимости блокировок см. в представлении sys.dm_tran_locks.

LCK_M_RX_S

Имеет место, когда задача ожидает получения совмещаемой блокировки на текущее ключевое значение и монопольной блокировки диапазона между текущим и предыдущим ключами. Матрицу совместимости блокировок см. в представлении sys.dm_tran_locks.

LCK_M_RX_U

Имеет место, когда задача ожидает получения блокировки на обновление текущего ключевого значения и монопольной блокировки диапазона между текущим и предыдущим ключами. Матрицу совместимости блокировок см. в представлении sys.dm_tran_locks.

LCK_M_RX_X

Имеет место, когда задача ожидает получения монопольной блокировки на текущее ключевое значение и монопольной блокировки диапазона между текущим и предыдущим ключами. Матрицу совместимости блокировок см. в представлении sys.dm_tran_locks.

LCK_M_S

Имеет место, когда задача ожидает получения совмещаемой блокировки. Матрицу совместимости блокировок см. в представлении sys.dm_tran_locks.

LCK_M_SCH_M

Имеет место, когда задача ожидает получения блокировки на изменение схемы. Матрицу совместимости блокировок см. в представлении sys.dm_tran_locks.

LCK_M_SCH_S

Имеет место, когда задача ожидает получения совмещаемой блокировки схемы. Матрицу совместимости блокировок см. в представлении sys.dm_tran_locks.

LCK_M_SIU

Имеет место, когда задача ожидает получения совмещаемой блокировки с намерением обновления. Матрицу совместимости блокировок см. в представлении sys.dm_tran_locks.

LCK_M_SIX

Имеет место, когда задача ожидает получения совмещаемой блокировки с намерением монопольного доступа. Матрицу совместимости блокировок см. в представлении sys.dm_tran_locks.

LCK_M_U

Имеет место, когда задача ожидает получения блокировки на обновление. Матрицу совместимости блокировок см. в представлении sys.dm_tran_locks.

LCK_M_UIX

Имеет место, когда задача ожидает получения блокировки на обновление с намерением монопольного доступа. Матрицу совместимости блокировок см. в представлении sys.dm_tran_locks.

LCK_M_X

Имеет место, когда задача ожидает получения блокировки на монопольный доступ. Матрицу совместимости блокировок см. в представлении sys.dm_tran_locks.

LOGBUFFER

Имеет место, когда задача ожидает освобождения пространства в буфере журнала для сохранения записи в журнал. Последовательные высокие значения могут указывать на то, что устройства записи в журнал не справляются с объемом записей, формируемых сервером.

LOGMGR

Имеет место, когда задача ожидает завершения каких-либо связанных с журналом внешних операций ввода-вывода перед тем, как закрыть журнал для закрытия базы данных.

LOGMGR_FLUSH

Только для внутреннего использования.

LOGMGR_QUEUE

Имеет место, когда задача записи в журнал ожидает рабочих запросов.

LOGMGR_RESERVE_APPEND

Имеет место, когда задача ожидает проверки освобождения достаточного пространства для новой записи в журнал после его усечения. Для уменьшения времени этого ожидания попробуйте увеличить размер файлов журнала для затронутой базы данных.

LOWFAIL_MEMMGR_QUEUE

Имеет место при ожидании доступности памяти для использования.

MIRROR_SEND_MESSAGE

Только для внутреннего использования.

MISCELLANEOUS

Только для внутреннего использования.

MSQL_DQ

Имеет место, когда задача ожидает завершения операции распределенного запроса. Это используется для выявления потенциальных взаимоблокировок приложений MARS. Ожидание окончится по завершении вызова распределенного запроса.

MSQL_SYNC_PIPE

Только для внутреннего использования.

MSQL_XACT_MGR_MUTEX

Имеет место, когда задача ожидает получения прав на владение диспетчером транзакций сеансов для выполнения транзакционной операции сеансового уровня.

MSQL_XACT_MUTEX

Имеет место в процессе синхронизации использования транзакции. Прежде чем запрос сможет использовать транзакцию, он должен получить объект взаимного исключения.

MSQL_XP

Имеет место, когда задача ожидает завершения расширенной хранимой процедуры. В SQL Server это состояние ожидания используется для выявления потенциальных взаимоблокировок приложений с режимом MARS. Ожидание окончится по завершении вызова расширенной хранимой процедуры.

MSSEARCH

Имеет место в процессе вызова полнотекстового поиска. Ожидание окончится по завершении операции полнотекстового поиска. Это указывает не на конфликт, а на длительность операций полнотекстового поиска.

NET_WAITFOR_PACKET

Имеет место при ожидании соединением сетевого пакета в процессе чтения из сети.

OLEDB

Имеет место при вызове SQL Server поставщика OLE DB для собственного клиента Microsoft SQL. Этот тип ожидания не используется для синхронизации. Он указывает на длительность вызовов поставщика OLE DB.

ONDEMAND_TASK_QUEUE

Имеет место, когда фоновая задача ожидает запросов системных задач с высоким приоритетом. Длительное время ожидания указывает, что к процессу не было высокоприоритетных запросов, и причины для беспокойства нет.

PAGEIOLATCH_DT

Имеет место, когда задача ожидает кратковременной блокировки буфера, находящегося в состоянии запроса ввода-вывода. Запрос на кратковременную блокировку производится в режиме удаления. Длительное время ожидания может указывать на проблемы с дисковой подсистемой.

PAGEIOLATCH_EX

Имеет место, когда задача ожидает кратковременной блокировки буфера, находящегося в состоянии запроса ввода-вывода. Запрос на кратковременную блокировку производится в исключительном режиме. Длительное время ожидания может указывать на проблемы с дисковой подсистемой.

PAGEIOLATCH_KP

Имеет место, когда задача ожидает кратковременной блокировки буфера, находящегося в состоянии запроса ввода-вывода. Запрос на кратковременную блокировку производится в режиме удержания. Длительное время ожидания может указывать на проблемы с дисковой подсистемой.

PAGEIOLATCH_NL

Только для внутреннего использования.

PAGEIOLATCH_SH

Имеет место, когда задача ожидает кратковременной блокировки буфера, находящегося в состоянии запроса ввода-вывода. Запрос на кратковременную блокировку производится в режиме общего доступа. Длительное время ожидания может указывать на проблемы с дисковой подсистемой.

PAGEIOLATCH_UP

Имеет место, когда задача ожидает кратковременной блокировки буфера, находящегося в состоянии запроса ввода-вывода. Запрос на кратковременную блокировку производится в режиме обновления. Длительное время ожидания может указывать на проблемы с дисковой подсистемой.

PAGELATCH_DT

Имеет место, когда задача ожидает кратковременной блокировки буфера, находящегося не в состоянии запроса ввода-вывода. Запрос на кратковременную блокировку производится в режиме удаления.

PAGELATCH_EX

Имеет место, когда задача ожидает кратковременной блокировки буфера, находящегося не в состоянии запроса ввода-вывода. Запрос на кратковременную блокировку производится в исключительном режиме.

PAGELATCH_KP

Имеет место, когда задача ожидает кратковременной блокировки буфера, находящегося не в состоянии запроса ввода-вывода. Запрос на кратковременную блокировку производится в режиме удержания.

PAGELATCH_NL

Только для внутреннего использования.

PAGELATCH_SH

Имеет место, когда задача ожидает кратковременной блокировки буфера, находящегося не в состоянии запроса ввода-вывода. Запрос на кратковременную блокировку производится в режиме общего доступа.

PAGELATCH_UP

Имеет место, когда задача ожидает кратковременной блокировки буфера, не находящегося в состоянии запроса ввода-вывода. Запрос на кратковременную блокировку производится в режиме обновления.

PARALLEL_BACKUP_QUEUE

Имеет место при сериализации вывода инструкции RESTORE HEADERONLY, RESTORE FILELISTONLY или RESTORE LABELONLY.

PRINT_ROLLBACK_PROGRESS

Применяется при ожидании завершения пользовательских процессов в базе данных, измененной с помощью заключительного предложения ALTER DATABASE. Дополнительные сведения см. в разделе ALTER DATABASE (Transact-SQL).

QNMANAGER_ACQUIRE

Только для внутреннего использования.

QPJOB_KILL

Указывает, что асинхронное автоматическое обновление статистики было отменено с помощью вызова команды KILL во время запуска на выполнение. Завершающий поток приостанавливается и начинает прослушивание команд KILL для своего запуска. Нормальное значение составляет менее 1 секунды.

QPJOB_WAITFOR_ABORT

Указывает, что асинхронное автоматическое обновление статистики было отменено с помощью вызова команды KILL во время выполнения. Обновление в данный момент завершено, но приостановлено до выполнения координации сообщений завершающих потоков. Это обычное, но редкое состояние, которое должно длиться очень короткое время. Нормальное значение составляет менее 1 секунды.

QRY_MEM_GRANT_INFO_MUTEX

Имеет место, когда средство управления памятью при выполнении запросов пытается управлять доступом к статичному списку предоставлений памяти. В этом списке содержатся сведения о текущей предоставленной памяти и ожидающих запросах на ее выделение. Данное состояние является стандартным при управлении доступом. Его ожидание не должно длиться долго. Если объект взаимного исключения не будет освобожден, на все новые запросы по использованию памяти ответов не будет.

QUERY_EXECUTION_INDEX_SORT_EVENT_OPEN

Имеет место в определенных случаях, когда параллельно выполняется автономное создание индекса, а различные выполняющие сортировку исполнители синхронизируют доступ к файлам сортировки.

QUERY_NOTIFICATION_MGR_MUTEX

Имеет место в процессе синхронизации очереди сборки мусора в диспетчере уведомлений о запросах.

QUERY_NOTIFICATION_SUBSCRIPTION_MUTEX

Имеет место в процессе синхронизации состояния транзакций в уведомлениях о запросах.

QUERY_NOTIFICATION_TABLE_MGR_MUTEX

Имеет место в процессе внутренней синхронизации диспетчера уведомлений о запросах.

QUERY_NOTIFICATION_UNITTEST_MUTEX

Только для внутреннего использования.

QUERY_OPTIMIZER_PRINT_MUTEX

Имеет место в процессе синхронизации диагностического выхода оптимизатора запросов. Этот тип ожидания имеет место только в случае, если были включены настройки диагностики под руководством службы поддержки продуктов Microsoft.

QUERY_TRACEOUT

Только для внутреннего использования.

RECOVER_CHANGEDB

Имеет место в процессе синхронизации состояния базы данных в режиме «горячего» резервирования.

REPL_CACHE_ACCESS

Имеет место в процессе синхронизации кэша статей репликации. В процессе таких ожиданий средство чтения журнала репликации простаивает, а инструкции языка описания данных DDL к опубликованной таблице блокируются.

REPL_SCHEMA_ACCESS

Имеет место в процессе синхронизации данных о версии схемы репликации. Это состояние имеет место в случаях, когда DDL-инструкции выполняются над реплицируемым объектом, а средство чтения журнала создает или использует схему с управлением версиями на основе вхождения DDL.

REPLICA_WRITES

Имеет место при ожидании задачей завершения записи страниц в моментальные снимки базы данных или реплики DBCC.

REQUEST_DISPENSER_PAUSE

Имеет место при ожидании задачей завершения всех текущих операций ввода-вывода, чтобы ввод-вывод в файл можно было приостановить для выполнения резервного копирования моментального снимка.

REQUEST_FOR_DEADLOCK_SEARCH

Имеет место в случае, когда монитор взаимоблокировок ожидает запуска следующего поиска взаимоблокировки. Это ожидаемое состояние между выявлениями взаимоблокировок, и длительное общее время ожидания этого ресурса не указывает на проблему.

RESOURCE_QUEUE

Имеет место в процессе синхронизации различных внутренних очередей ресурсов.

RESOURCE_SEMAPHORE

Имеет место в случае, когда запрос памяти из очереди не может быть выполнен немедленно из-за других параллельных запросов. Высокие значения ожиданий и времени ожидания могут указывать на чрезмерное количество параллельных запросов или чрезмерные объемы запрашиваемой памяти.

RESOURCE_SEMAPHORE_MUTEX

Имеет место в случае, когда запрос ожидает выполнения запроса на резервирование потока. Также имеет место при запросах на компиляцию и выделение памяти в процессе синхронизации.

RESOURCE_SEMAPHORE_QUERY_COMPILE

Имеет место в случае, когда количество параллельных компиляций запросов достигает предела повтора. Высокие значения ожиданий и времени ожидания могут указывать на чрезмерное количество компиляций, повторных компиляций или некэшируемых планов.

RESOURCE_SEMAPHORE_SMALL_QUERY

Имеет место в случае, когда небольшой запрос не может быть выполнен немедленно из-за других параллельных запросов. Время ожидания не должно превышать нескольких секунд, так как при невозможности выделения запрошенной памяти в течение нескольких секунд сервер передает запрос в главный пул памяти для запросов. Высокие значения ожиданий могут указывать на чрезмерное количество параллельных небольших запросов, в то время как главный пул памяти заблокирован ожидающими запросами.

SEC_DROP_TEMP_KEY

Имеет место после неудачной попытки удаления временного ключа безопасности перед повторной попыткой.

SERVER_IDLE_CHECK

Имеет место в процессе синхронизации состояния простоя экземпляра SQL Server, в то время как монитор ресурсов пытается объявить экземпляр SQL Server простаивающим или пытающимся пробудиться.

SHUTDOWN

Имеет место, когда инструкция завершения работы ожидает закрытия активных соединений.

SLEEP_BPOOL_FLUSH

Имеет место при повторе контрольной точкой выпуска новых операций ввода-вывода во избежание переполнения дисковой подсистемы.

SLEEP_DBSTARTUP

Имеет место в процессе запуска базы данных при ожидании восстановления всех баз данных.

SLEEP_DCOMSTARTUP

Имеет место однократно в большинстве случаев в процессе запуска экземпляра SQL Server при ожидании завершения инициализации DCOM.

SLEEP_MSDBSTARTUP

Имеет место при ожидании трассировкой SQL выполнения запуска базы данных msdb.

SLEEP_SYSTEMTASK

Имеет место при запуске фоновой задачи во время ожидания выполнения запуска базы данных tempdb.

SLEEP_TASK

Имеет место в случае, когда задача находится в неактивном состоянии во время ожидания универсального события.

SLEEP_TEMPDBSTARTUP

Имеет место при ожидании задачей выполнения запуска базы данных tempdb.

SNI_CRITICAL_SECTION

Имеет место в процессе внутренней синхронизации в сетевых компонентах SQL Server.

SNI_HTTP_ACCEPT

Только для внутреннего использования.

SNI_HTTP_WAITFOR_0_DISCON

Имеет место при завершении работы SQL Server во время ожидания завершения имеющихся HTTP-соединений.

SOAP_READ

Имеет место при ожидании завершения операции чтения HTTP-данных из сети.

SOAP_WRITE

Имеет место при ожидании завершения операции записи HTTP-данных по сети.

SOS_CALLBACK_REMOVAL

Имеет место при выполнении синхронизации списка обратных вызовов с целью удаления обратного вызова. Изменение этого счетчика после выполнения инициализации сервера не ожидается.

SOS_LOCALALLOCATORLIST

Имеет место в процессе внутренней синхронизации в диспетчере памяти SQL Server.

SOS_OBJECT_STORE_DESTROY_MUTEX

Имеет место в процессе внутренней синхронизации в пулах памяти во время удаления объектов из пула.

SOS_PROCESS_AFFINITY_MUTEX

Имеет место в процессе синхронизации доступа для обработки настроек схожести.

SOS_RESERVEDMEMBLOCKLIST

Имеет место в процессе внутренней синхронизации в диспетчере памяти SQL Server.

SOS_SCHEDULER_YIELD

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

SOS_STACKSTORE_INIT_MUTEX

Имеет место в процессе синхронизации внутренней инициализации хранилища.

SOS_SYNC_TASK_ENQUEUE_EVENT

Имеет место при запуске задачи в синхронном режиме. Большинство задач в SQL Server запускаются в асинхронном режиме, при котором управление возвращается процессу, запустившему задачу, немедленно после помещения запроса на задачу в рабочую очередь.

SOS_VIRTUALMEMORY_LOW

Имеет место при выделении памяти в случае ожидания освобождения виртуальной памяти менеджером ресурсов.

SOSHOST_EVENT

Имеет место в случае, когда включенный компонент, например среда CLR, ожидает объекта синхронизации событий SQL Server 2005.

SOSHOST_INTERNAL

Имеет место в процессе синхронизации обратных вызовов диспетчера памяти, используемых включенными компонентами, например средой CLR.

SOSHOST_MUTEX

Имеет место в случае, когда включенный компонент, например среда CLR, ожидает объекта синхронизации объектов взаимных исключений SQL Server 2005.

SOSHOST_RWLOCK

Имеет место в случае, когда включенный компонент, например среда CLR, ожидает объекта синхронизации чтения-записи SQL Server 2005.

SOSHOST_SEMAPHORE

Имеет место в случае, когда включенный компонент, например среда CLR, ожидает объекта синхронизации семафоров SQL Server 2005.

SOSHOST_SLEEP

Имеет место в случае, когда включенная задача находится в неактивном состоянии во время ожидания универсального события. Включенные задачи используются включенными компонентами, например средой CLR.

SOSHOST_TRACELOCK

Имеет место в процессе синхронизации доступа к потокам трассировки.

SOSHOST_WAITFORDONE

Имеет место в случае, когда включенный компонент, например среда CLR, ожидает завершения выполнения задачи.

SQLCLR_APPDOMAIN

Имеет место в случае, когда среда CLR ожидает завершения запуска домена приложений.

SQLCLR_ASSEMBLY

Имеет место при ожидании доступа к списку загруженных сборок в домене приложений.

SQLCLR_DEADLOCK_DETECTION

Имеет место в случае, когда среда CLR ожидает завершения выявления взаимоблокировок.

SQLCLR_QUANTUM_PUNISHMENT

Имеет место в случае повтора задачи CLR из-за превышения такта на выполнение. Повтор производится с целью снижения влияния задачи, интенсивно использующей ресурсы, на другие задачи.

SQLSORT_NORMMUTEX

Имеет место в процессе внутренней синхронизации во время инициализации внутренних структур сортировки.

SQLSORT_SORTMUTEX

Имеет место в процессе внутренней синхронизации во время инициализации внутренних структур сортировки.

SQLTRACE_BUFFER_FLUSH

Имеет место, когда задача ожидает сохранения фоновой задачей буферов трассировки на диск каждые четыре секунды.

SQLTRACE_LOCK

Имеет место в процессе синхронизации буферов трассировки во время трассировки файлов.

SQLTRACE_SHUTDOWN

Имеет место в случае, когда операция завершения трассировки ожидает завершения имеющихся событий трассировки.

SQLTRACE_WAIT_ENTRIES

Имеет место в случае, когда очередь событий трассировки SQL ожидает поступления пакетов в очередь.

SRVPROC_SHUTDOWN

Имеет место в случае, когда процесс завершения работы ожидает освобождения внутренних ресурсов для корректного завершения работы.

TEMPOBJ

Имеет место при синхронизации удалений временных объектов. Этот тип ожидания является редким и имеет место только в случае, если задача запросила монопольный доступ на удаление таблиц temp.

THREADPOOL

Имеет место, когда задача ожидает запуска исполнителем. Это ожидание может указывать на недостаточное число исполнителей или на то, что выполнение пакетов занимает слишком много времени, поэтому число доступных исполнителей уменьшилось из-за необходимости обработки других пакетов.

TRACEWRITE

Имеет место в случае, когда поставщик трассировки наборов строк SQL ожидает либо свободного буфера, либо буфера с событиями для обработки.

TRAN_MARKLATCH_DT

Имеет место при ожидании кратковременной блокировки режима удаления для кратковременной блокировки метки транзакции. Кратковременные блокировки меток транзакций используются для синхронизации фиксаций с помеченными транзакциями.

TRAN_MARKLATCH_EX

Имеет место при ожидании кратковременной блокировки монопольного режима для помеченной транзакции. Кратковременные блокировки меток транзакций используются для синхронизации фиксаций с помеченными транзакциями.

TRAN_MARKLATCH_KP

Имеет место при ожидании кратковременной блокировки режима удержания для помеченной транзакции. Кратковременные блокировки меток транзакций используются для синхронизации фиксаций с помеченными транзакциями.

TRAN_MARKLATCH_NL

Только для внутреннего использования.

TRAN_MARKLATCH_SH

Имеет место при ожидании кратковременной блокировки общего режима для помеченной транзакции. Кратковременные блокировки меток транзакций используются для синхронизации фиксаций с помеченными транзакциями.

TRAN_MARKLATCH_UP

Имеет место при ожидании кратковременной блокировки режима обновления для помеченной транзакции. Кратковременные блокировки меток транзакций используются для синхронизации фиксаций с помеченными транзакциями.

TRANSACTION_MUTEX

Имеет место в процессе синхронизации доступа к транзакции из нескольких пакетов.

UTIL_PAGE_ALLOC

Имеет место в случае, когда операции просмотра журналов транзакций ожидают освобождения памяти в условиях чрезмерной загрузки.

VIEW_DEFINITION_MUTEX

Имеет место в процессе синхронизации доступа к кэшированным определениям представлений.

WAIT_FOR_RESULTS

Имеет место при ожидании срабатывания триггера уведомления запроса.

WAITFOR

Имеет место как результат выполнения инструкции WAITFOR Transact-SQL. Длительность ожидания определяется параметрами инструкции. Это ожидание инициируется пользователем.

WAITSTAT_MUTEX

Имеет место в процессе синхронизации доступа к коллекции статистик, используемой для заполнения представления sys.dm_os_wait_stats.

WORKTBL_DROP

Имеет место в случае приостановки перед повторной попыткой, после неудачной попытки удаления рабочей таблицы.

WRITELOG

Имеет место при ожидании завершения сброса журнала. Обычно сброс журнала вызывается такими операциями, как контрольные точки и фиксации транзакций.

XACT_OWN_TRANSACTION

Имеет место при ожидании получения прав на владение транзакцией.

XACT_RECLAIM_SESSION

Имеет место при ожидании отказа текущего владельца сеанса от владения им.

XACTLOCKINFO

Имеет место в процессе синхронизации доступа к списку блокировок для транзакции. В дополнение к самой транзакции к списку имеют доступ такие операции, как выявление взаимоблокировок и миграция блокировок во время разбиения страниц.

XACTWORKSPACE_MUTEX

Имеет место в процессе синхронизации исключений из транзакции, а также синхронизации числа блокировок базы данных между прикрепленными участниками транзакции.

См. также

Справочник

Динамические административные представления и функции
Динамические административные представления, относящиеся к операционной системе SQL Server

Справка и поддержка

Получение помощи по SQL Server 2005

Журнал изменений

Версия Журнал

14 апреля 2006 г.

Добавления
  • Добавлены следующие типы ожиданий: FULLTEXT GATHERER, EE_SPECPROC_MAP_INIT, ERROR_REPORTING_MANAGER.
Изменения
  • Пересмотрено описание типа ожидания OLEDB.

5 декабря 2005 г.

Добавления
  • Добавлены все типы ожиданий, которые имеют место в SQL Server 2005.
Изменения
  • Обновлено несколько описаний типов ожиданий.