Поделиться через


sys.dm_os_wait_stats (Transact-SQL)

Возвращает данные обо всех случаях ожидания, обнаруженных выполнявшимися потоками. Это агрегированное представление можно использовать для диагностики проблем производительности как всего 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 счетчики времени ожидания представляют собой значения типа bigint, поэтому их переполнение не столь вероятно, как переполнение соответствующих счетчиков в предыдущих версиях SQL Server.

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

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

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

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

ПримечаниеПримечание

Данная статистика не сохраняется при перезапуске SQL Server, и все данные накапливаются с момента последнего сброса статистики или перезапуска сервера.

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

Тип ожидания

Описание

ABR

Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется.

ASSEMBLY_LOAD

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

ASYNC_DISKPOOL_LOCK

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

ASYNC_IO_COMPLETION

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

ASYNC_NETWORK_IO

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

AUDIT_GROUPCACHE_LOCK

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

AUDIT_LOGINCACHE_LOCK

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

AUDIT_ON_DEMAND_TARGET_LOCK

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

AUDIT_XE_SESSION_MGR

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

BACKUP

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

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_SERVICE

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

BROKER_SHUTDOWN

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

BROKER_TASK_STOP

Имеет место, если обработчик задачи очереди компонента Компонент Service Broker пытается завершить работу задачи. Проверка состояния сериализуется и заранее должна находиться в выполняющемся состоянии.

BROKER_TO_FLUSH

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

BROKER_TRANSMITTER

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

BUILTIN_HASHKEY_MUTEX

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

CHECK_PRINT_RECORD

Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется.

CHECKPOINT_QUEUE

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

CHKPT

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

CLEAR_DB

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

CLR_AUTO_EVENT

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

CLR_CRST

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

CLR_JOIN

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

CLR_MANUAL_EVENT

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

CLR_MEMORY_SPY

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

CLR_MONITOR

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

CLR_RWLOCK_READER

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

CLR_RWLOCK_WRITER

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

CLR_SEMAPHORE

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

CLR_TASK_START

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

CLRHOST_STATE_ACCESS

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

CMEMTHREAD

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

CXPACKET

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

CXROWSET_SYNC

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

DAC_INIT

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

DBMIRROR_DBM_EVENT

Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется.

DBMIRROR_DBM_MUTEX

Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется.

DBMIRROR_EVENTS_QUEUE

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

DBMIRROR_SEND

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

DBMIRROR_WORKER_QUEUE

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

DBMIRRORING_CMD

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

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 на один пользовательский процесс, может указывать на то, что внешнее резервное копирование занимает слишком много времени.

DISPATCHER_QUEUE_SEMAPHORE

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

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

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

DUMPTRIGGER

Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется.

EC

Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется.

EE_PMOLOCK

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

EE_SPECPROC_MAP_INIT

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

ENABLE_VERSIONING

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

ERROR_REPORTING_MANAGER

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

EXCHANGE

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

EXECSYNC

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

EXECUTION_PIPE_EVENT_INTERNAL

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

FAILPOINT

Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется.

FCB_REPLICA_READ

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

FCB_REPLICA_WRITE

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

FS_FC_RWLOCK

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

  • Отключение сборки мусора (используется операциями резервного копирования и восстановления).

  • Выполнение одного цикла сборщика мусора FILESTREAM.

FS_GARBAGE_COLLECTOR_SHUTDOWN

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

FS_HEADER_RWLOCK

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

FS_LOGTRUNC_RWLOCK

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

  • Временное отключение усечения журнала FILESTREAM (FSLOG) (используется операциями резервного копирования и восстановления).

  • Выполнение одного цикла усечения журнала FSLOG.

FSA_FORCE_OWN_XACT

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

FSAGENT

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

FSTR_CONFIG_MUTEX

Имеет место во время ожидания завершения перенастройки другой функции FILESTREAM.

FSTR_CONFIG_RWLOCK

Имеет место при ожидании сериализации доступа к параметрам конфигурации FILESTREAM.

FT_METADATA_MUTEX

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

FT_RESTART_CRAWL

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

FULLTEXT GATHERER

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

GUARDIAN

Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется.

HADR_AG_MUTEX

Инструкция DDL AlwaysOn или команда отказоустойчивой кластеризации Windows Server (WSFC) ожидает монопольного доступа к конфигурации группы доступности на чтение и запись.

HADR_AR_CRITICAL_SECTION_ENTRY

Инструкция DDL AlwaysOn или команда отказоустойчивой кластеризации Windows Server (WSFC) ожидает монопольного доступа к состоянию среды выполнения локальной реплики соответствующей группы доступности.

HADR_AR_MANAGER_MUTEX

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

ПримечаниеПримечание

Завершение работы реплики доступности инициируется в том случае, если SQL Server завершил работу или если узел WSFC потерял кворум и SQL Server обрабатывает потерю кворума. Запуск реплики доступности инициируется в том случае, если SQL Server запускается или восстанавливается после потери кворума узлом WSFC.

HADR_ARCONTROLLER_NOTIFICATIONS_SUBSCRIBER_LIST

Издатель события реплики доступности (например события изменения состояния или изменения конфигурации) ожидает монопольного доступа к списку подписчиков на событие для чтения или записи. Только для внутреннего применения.

HADR_BACKUP_BULK_LOCK

База данных-источник получила запрос от базы данных-получателя на резервное копирование и ожидает, пока фоновый поток завершит обработку запроса на получение или снятие блокировки BulkOp.

HADR_BACKUP_QUEUE

Фоновый поток резервного копирования базы данных-источника AlwaysOn ожидает нового рабочего запроса от базы данных-получателя. (Обычно это происходит в том случае, когда база данных-источник содержит журнал BulkOp и ожидает, пока база данных-получатель сообщит, что база данных-источник может снять блокировку).

HADR_CLUSAPI_CALL

Поток SQL Server ожидает переключения из режима без вытеснения (планируемого сервером SQL Server) в режим с вытеснением (планируемый операционной системой) для вызова API-интерфейсов WSFC.

HADR_COMPRESSED_CACHE_SYNC

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

HADR_DATABASE_FLOW_CONTROL

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

HADR_DATABASE_VERSIONING_STATE

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

HADR_DATABASE_WAIT_FOR_RESTART

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

HADR_DATABASE_WAIT_FOR_TRANSITION_TO_VERSIONING

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

HADR_DB_COMMAND

Ожидание ответов на разговорные сообщения (которые требуют явного ответа от другой стороны и используют для этого инфраструктуру разговорных сообщений AlwaysOn). Этот тип ожидания используется несколькими типами сообщений.

HADR_DB_OP_COMPLETION_SYNC

Ожидание ответов на разговорные сообщения (которые требуют явного ответа от другой стороны и используют для этого инфраструктуру разговорных сообщений AlwaysOn). Этот тип ожидания используется несколькими типами сообщений.

HADR_DB_OP_START_SYNC

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

HADR_DBR_SUBSCRIBER

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

HADR_DBR_SUBSCRIBER_FILTER_LIST

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

HADR_DBSTATECHANGE_SYNC

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

HADR_FILESTREAM_BLOCK_FLUSH

Диспетчер транспорта FILESTREAM AlwaysOn ожидает окончания обработки блока журнала.

HADR_FILESTREAM_FILE_CLOSE

Диспетчер транспорта FILESTREAM AlwaysOn ожидает, пока будет обработан следующий файл FILESTREAM и закрыт дескриптор этого файла.

HADR_FILESTREAM_FILE_REQUEST

Вторичная реплика AlwaysOn ожидает, пока первичная реплика отправит все запрошенные файлы FILESTREAM во время операции UNDO.

HADR_FILESTREAM_IOMGR

Диспетчер транспорта FILESTREAM AlwaysOn ожидает блокировки чтения/записи, которая защищает диспетчер файлового ввода-вывода AlwaysOn во время запуска и завершения работы.

HADR_FILESTREAM_IOMGR_IOCOMPLETION

Диспетчер ввода-вывода FILESTREAM AlwaysOn ожидает завершения ввода-вывода.

HADR_FILESTREAM_MANAGER

Диспетчер транспорта FILESTREAM AlwaysOn ожидает блокировки чтения/записи, которая защищает диспетчер транспорта FILESTREAM AlwaysOn во время запуска и завершения работы.

HADR_GROUP_COMMIT

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

HADR_LOGCAPTURE_SYNC

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

HADR_LOGCAPTURE_WAIT

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

HADR_LOGPROGRESS_SYNC

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

HADR_NOTIFICATION_DEQUEUE

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

HADR_NOTIFICATION_WORKER_EXCLUSIVE_ACCESS

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

HADR_NOTIFICATION_WORKER_STARTUP_SYNC

Фоновая задача ожидает окончания запуска фоновой задачи, которая обрабатывает уведомления WSFC. Только для внутреннего применения.

HADR_NOTIFICATION_WORKER_TERMINATION_SYNC

Фоновая задача ожидает завершения работы фоновой задачи, которая обрабатывает уведомления WSFC. Только для внутреннего применения.

HADR_PARTNER_SYNC

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

HADR_READ_ALL_NETWORKS

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

ПримечаниеПримечание

Исполняющая система хранит список сетей WSFC, используемый в динамических административных представлениях (например sys.dm_hadr_cluster_networks) или для проверки инструкций Transact-SQL AlwaysOn, ссылающихся на данные сети WSFC. Этот список обновляется при запуске исполняющей системы, при получении уведомлений, связанных с WSFC, и при внутреннем перезапуске AlwaysOn (например в случае утери и восстановления кворума WSFC). Обычно задачи будут блокироваться, пока выполняется обновление в этом списке.

HADR_RECOVERY_WAIT_FOR_CONNECTION

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

HADR_RECOVERY_WAIT_FOR_UNDO

Механизм восстановления базы данных ожидает, пока база данных-получатель закончит фазу восстановления и инициализации, которая вернет ее к общей временной точке в журнале с базой данных-источником. Такое ожидание предусмотрено после отработки отказа. Отслеживать процесс транзакций можно с помощью системного монитора Windows (perfmon.exe) и динамических административных представлений.

HADR_REPLICAINFO_SYNC

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

HADR_SYNC_COMMIT

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

HADR_SYNCHRONIZING_THROTTLE

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

HADR_TDS_LISTENER_SYNC

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

HADR_TDS_LISTENER_SYNC_PROCESSING

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

HADR_TIMER_TASK

Ожидание получения блокировки на объект задачи таймера. Используется также для реализации фактического ожидания между моментами времени, когда выполняется работа. Например, если задача выполняется каждые 10 секунд, то после одного выполнения функция групп доступности AlwaysOn ожидает около 10 секунд, прежде чем снова включить задачу в расписание, и это ожидание задается здесь.

HADR_TRANSPORT_DBRLIST

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

HADR_TRANSPORT_FLOW_CONTROL

Ожидание, пока число необработанных сообщений AlwaysOn превысит пороговое значение «out flow control». Это значение определяется репликой доступности (а не базами данных).

HADR_TRANSPORT_SESSION

Функция групп доступности AlwaysOn ожидает, пока изменится состояние транспорта или произойдет обращение к этому состоянию.

HADR_WORK_POOL

Механизм управления параллелизмом ожидает объект фоновой рабочей задачи в функции групп доступности AlwaysOn.

HADR_WORK_QUEUE

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

HADR_XRF_STACK_ACCESS

Доступ к расширенному стеку вилок восстановления (поиск, добавление и удаление) для базы данных доступности AlwaysOn.

HTTP_ENUMERATION

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

HTTP_START

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

IMPPROV_IOWAIT

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

INTERNAL_TESTING

Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется.

IO_AUDIT_MUTEX

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

IO_COMPLETION

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

IO_RETRY

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

IOAFF_RANGE_QUEUE

Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется.

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 (Transact-SQL).

LCK_M_IS

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

LCK_M_IU

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

LCK_M_IX

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

LCK_M_RIn_NL

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

LCK_M_RIn_S

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

LCK_M_RIn_U

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

LCK_M_RIn_X

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

LCK_M_RS_S

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

LCK_M_RS_U

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

LCK_M_RX_S

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

LCK_M_RX_U

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

LCK_M_RX_X

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

LCK_M_S

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

LCK_M_SCH_M

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

LCK_M_SCH_S

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

LCK_M_SIU

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

LCK_M_SIX

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

LCK_M_U

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

LCK_M_UIX

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

LCK_M_X

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

LOGBUFFER

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

LOGGENERATION

Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется.

LOGMGR

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

LOGMGR_FLUSH

Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется.

LOGMGR_QUEUE

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

LOGMGR_RESERVE_APPEND

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

LOWFAIL_MEMMGR_QUEUE

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

MISCELLANEOUS

Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется.

MSQL_DQ

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

MSQL_XACT_MGR_MUTEX

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

MSQL_XACT_MUTEX

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

MSQL_XP

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

MSSEARCH

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

NET_WAITFOR_PACKET

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

OLEDB

Имеет место при вызове SQL Server поставщика OLE DB для собственного клиента SQL Server. Этот тип ожидания не используется для синхронизации. Он указывает на длительность вызовов поставщика 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.

PREEMPTIVE_ABR

Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется.

PREEMPTIVE_AUDIT_ACCESS_EVENTLOG

Происходит, если планировщик операционной системы SQLOS SQL Server переключается в режим с вытеснением, чтобы записать событие аудита в журнал событий Windows.

PREEMPTIVE_AUDIT_ACCESS_SECLOG

Происходит, если планировщик SQLOS переключается в режим с вытеснением, чтобы записать событие аудита в журнал безопасности Windows.

PREEMPTIVE_CLOSEBACKUPMEDIA

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

PREEMPTIVE_CLOSEBACKUPTAPE

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

PREEMPTIVE_CLOSEBACKUPVDIDEVICE

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

PREEMPTIVE_CLUSAPI_CLUSTERRESOURCECONTROL

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

PREEMPTIVE_COM_COCREATEINSTANCE

Происходит, если планировщик SQLOS переключается в режим с вытеснением, чтобы создать COM-объект.

PREEMPTIVE_HADR_LEASE_MECHANISM

Функция групп доступности AlwaysOn арендует диспетчер расписания для диагностики CSS.

PREEMPTIVE_SOSTESTING

Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется.

PREEMPTIVE_STRESSDRIVER

Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется.

PREEMPTIVE_TESTING

Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется.

PREEMPTIVE_XETESTING

Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется.

PRINT_ROLLBACK_PROGRESS

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

PWAIT_HADR_CHANGE_NOTIFIER_TERMINATION_SYNC

Фоновая задача ожидает завершения фоновой задачи, которая получает уведомления WSFC (путем опроса). Только для внутреннего применения.

PWAIT_HADR_CLUSTER_INTEGRATION

Операция добавления, замены или удаления ожидает получения блокировки записи во внутреннем списке AlwaysOn (например: в списке сетей, сетевых адресов или прослушивателей групп доступности). Только для внутреннего применения.

PWAIT_HADR_OFFLINE_COMPLETED

Операция удаления группы доступности AlwaysOn ожидает, пока целевая группа доступности отключится от сети, прежде чем удалять объекты WSFC).

PWAIT_HADR_ONLINE_COMPLETED

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

PWAIT_HADR_POST_ONLINE_COMPLETED

Операция удаления группы доступности AlwaysOn ожидает завершения любой фоновой задачи, которая была назначена во время выполнения предыдущей команды. Например, это может быть фоновая задача, которая превращает базы данных доступности в основные базы данных. Команда DROP AVAILABILITY GROUP должна дождаться завершения фоновой задачи во избежание появления конкуренции.

PWAIT_HADR_WORKITEM_COMPLETED

Внутреннее ожидание — поток ожидает завершения асинхронной рабочей задачи. Такое ожидание предусмотрено для использования CSS.

PWAIT_MD_LOGIN_STATS

Происходит во время внутренней синхронизации метаданных статистики входа в систему.

PWAIT_MD_RELATION_CACHE

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

PWAIT_MD_SERVER_CACHE

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

PWAIT_MD_UPGRADE_CONFIG

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

PWAIT_METADATA_LAZYCACHE_RWLOCk

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

QPJOB_KILL

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

QPJOB_WAITFOR_ABORT

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

QRY_MEM_GRANT_INFO_MUTEX

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

QUERY_ERRHDL_SERVICE_DONE

Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется.

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

Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется.

QUERY_WAIT_ERRHDL_SERVICE

Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется.

RECOVER_CHANGEDB

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

REPL_CACHE_ACCESS

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

REPL_SCHEMA_ACCESS

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

This wait type is also used by log reader agent to synchronize memory access. If a publisher has large number of very active published databases and log reader agents, contention can be seen on this wait type.

REPLICA_WRITES

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

REQUEST_DISPENSER_PAUSE

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

REQUEST_FOR_DEADLOCK_SEARCH

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

RESMGR_THROTTLED

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

RESOURCE_QUEUE

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

RESOURCE_SEMAPHORE

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

RESOURCE_SEMAPHORE_MUTEX

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

RESOURCE_SEMAPHORE_QUERY_COMPILE

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

RESOURCE_SEMAPHORE_SMALL_QUERY

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

SEC_DROP_TEMP_KEY

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

SECURITY_MUTEX

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

SEQUENTIAL_GUID

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

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_WAITFOR_0_DISCON

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

SNI_LISTENER_ACCESS

Имеет место при ожидании обновления изменения состояния узлов доступа к неоднородной памяти (NUMA). Доступ к изменению состояния сериализован.

SNI_TASK_COMPLETION

Имеет место при ожидании завершения всех задач во время изменения состояния узла NUMA.

SOAP_READ

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

SOAP_WRITE

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

SOS_CALLBACK_REMOVAL

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

SOS_DISPATCHER_MUTEX

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

SOS_LOCALALLOCATORLIST

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

SOS_MEMORY_USAGE_ADJUSTMENT

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

SOS_OBJECT_STORE_DESTROY_MUTEX

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

SOS_PHYS_PAGE_CACHE

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

SOS_PROCESS_AFFINITY_MUTEX

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

SOS_RESERVEDMEMBLOCKLIST

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

SOS_SCHEDULER_YIELD

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

SOS_SMALL_PAGE_ALLOC

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

SOS_STACKSTORE_INIT_MUTEX

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

SOS_SYNC_TASK_ENQUEUE_EVENT

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

SOS_VIRTUALMEMORY_LOW

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

SOSHOST_EVENT

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

SOSHOST_INTERNAL

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

SOSHOST_MUTEX

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

SOSHOST_RWLOCK

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

SOSHOST_SEMAPHORE

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

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_FILE_BUFFER

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

SQLTRACE_SHUTDOWN

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

SQLTRACE_WAIT_ENTRIES

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

SRVPROC_SHUTDOWN

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

TEMPOBJ

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

THREADPOOL

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

TIMEPRIV_TIMEPERIOD

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

TRACEWRITE

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

TRAN_MARKLATCH_DT

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

TRAN_MARKLATCH_EX

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

TRAN_MARKLATCH_KP

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

TRAN_MARKLATCH_NL

Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется.

TRAN_MARKLATCH_SH

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

TRAN_MARKLATCH_UP

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

TRANSACTION_MUTEX

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

UTIL_PAGE_ALLOC

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

VIA_ACCEPT

Имеет место при завершении соединения с поставщиком VIA во время запуска.

VIEW_DEFINITION_MUTEX

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

WAIT_FOR_RESULTS

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

WAITFOR

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

WAITFOR_TASKSHUTDOWN

Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется.

WAITSTAT_MUTEX

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

WCC

Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется.

WORKTBL_DROP

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

WRITE_COMPLETION

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

WRITELOG

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

XACT_OWN_TRANSACTION

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

XACT_RECLAIM_SESSION

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

XACTLOCKINFO

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

XACTWORKSPACE_MUTEX

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

XE_BUFFERMGR_ALLPROCESSED_EVENT

Происходит, если буферы сеанса расширенных событий записываются в целевые объекты. Это происходит в фоновом потоке.

XE_BUFFERMGR_FREEBUF_EVENT

Происходит, если верно любое из следующих условий.

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

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

XE_DISPATCHER_CONFIG_SESSION_LIST

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

  • Сеанс расширенных событий регистрируется с пулом фонового потока.

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

XE_DISPATCHER_JOIN

Происходит при завершении фонового потока, который используется для сеансов расширенных событий.

XE_DISPATCHER_WAIT

Происходит, если фоновый поток, который используется для сеансов расширенных событий, ожидает обработки буферов событий.

XE_MODULEMGR_SYNC

Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется.

XE_OLS_LOCK

Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется.

XE_PACKAGE_LOCK_BACKOFF

Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется.

FT_COMPROWSET_RWLOCK

Полнотекстовая операция ожидает завершения операции фрагментирования метаданных. Документируется исключительно в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется.

FT_IFTS_RWLOCK

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

FT_IFTS_SCHEDULER_IDLE_WAIT

Тип ожидания спящего режима планировщика полнотекстовой операции. Планировщик находится в состоянии простоя.

FT_IFTSHC_MUTEX

Полнотекстовая операция ожидает операции управления fdhost. Документируется исключительно в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется.

FT_IFTSISM_MUTEX

Полнотекстовая операция ожидает завершения операции связи. Документируется исключительно в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется.

FT_MASTER_MERGE

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

См. также

Справочник

Динамические административные представления и функции (Transact-SQL)

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