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.
Примечание. |
---|
Данная статистика не сохраняется при перезапуске 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 г. |
|
5 декабря 2005 г. |
|