天天看點

資源等待類型sys.dm_os_wait_stats權限備注

動态管理視圖  sys.dm_os_wait_stats 

傳回執行的線程所遇到的所有等待的相關資訊。可以使用該聚合視圖來診斷 SQL Server 以及特定查詢和批處理的性能問題。

列名

資料類型

說明

wait_type

nvarchar(60)

等待類型的名稱。

waiting_tasks_count

bigint

該等待類型的等待數。該計數器在每開始一個等待時便會增加。

wait_time_ms

該等待類型的總等待時間(毫秒)。該時間包括 signal_wait_time_ms。

max_wait_time_ms

該等待類型的最長等待時間。

signal_wait_time_ms

正在等待的線程從收到信号通知到其開始運作之間的時差。

資源等待類型sys.dm_os_wait_stats權限備注

需要對伺服器具有 VIEW SERVER STATE 權限。

資源等待類型sys.dm_os_wait_stats權限備注

<dl></dl>

<dt>資源等待</dt>

<dd></dd>

當某個工作線程請求通路某個不可用的資源(因為該資源正在由其他某個工作線程使用,或者該資源尚不可用)時,便會發生資源等待。資源等待的示例包括鎖等待、闩鎖等待、網絡等待以及磁盤 I/O 等待。鎖等待和闩鎖等待是指等待同步對象

<dt>隊列等待</dt>

當工作線程空閑,等待配置設定工作時便會發生隊列等待。隊列等待通常發生在系統背景任務(如監視死鎖以及清除已删除的記錄等任務)中。這些任務将等待工作請求被放入工作隊列。即使沒有新資料包放入隊列,隊列等待也可能定期處于活動狀态。

<dt>外部等待</dt>

當 SQL Server 工作線程正在等待外部事件(如擴充存儲過程調用或連結伺服器查詢)完成時,便會發生外部等待。當診斷有妨礙的問題時,請記住,外部等待不會始終表示工作線程處于空閑狀态,因為工作線程可能處于活動狀态且正在運作某些外部代碼。

sys.dm_os_wait_stats 顯示已經完成的等待的時間。此動态管理視圖不顯示目前等待。

如果出現下列任一情況,則不認為 SQL Server 工作線程處于等待狀态:

資源變得可用。

查詢非空。

外部程序完成。

盡管線程不再處于等待狀态,但是它不必立即開始運作。這是因為此類線程首先放入可運作工作線程的隊列中,并且必須等待量程在計劃程式中運作。

在 SQL Server 中,等待時間計數器的資料類型為 bigint,是以它們不會像 SQL Server 的早期版本中的等效計數器那樣滾動進行計數。

執行查詢期間的特定等待時間類型可以說明查詢中存在瓶頸或失效點。同樣,如果伺服器級的等待時間較長或等待計數較多,說明伺服器執行個體内互動查詢互動中存在瓶頸或熱點。例如,鎖等待訓示查詢争用資料;頁 IO 闩鎖等待訓示 IO 響應時間較慢;頁闩鎖更新訓示表示檔案布局不正确。

此動态管理視圖的内容可通過運作以下指令來重置:

資源等待類型sys.dm_os_wait_stats權限備注

複制代碼

該指令将所有計數器重置為 0。

資源等待類型sys.dm_os_wait_stats權限備注

注意:

這些統計資訊在每次重新啟動 SQL Server 時都不能持續存在,并且所有的資料均為自上次重置統計資訊或啟動伺服器以來累積的資料。

下表列出各任務所遇到的等待類型。

等待類型

ASYNC_DISKPOOL_LOCK

當嘗試同步并行的線程(執行建立或初始化檔案等任務)時出現。

ASYNC_IO_COMPLETION

當某任務正在等待 I/O 完成時出現。

ASYNC_NETWORK_IO

當任務被阻止在網絡之後時出現在網絡寫入中。驗證用戶端是否正在處理來自伺服器的資料。

BACKUP

當任務作為備份處理的一部分被阻止時出現。

BACKUP_CLIENTLOCK

辨別為僅供參考。不提供支援。不保證以後的相容性。

BACKUP_OPERATOR

當任務正在等待錄音帶裝入時出現。若要檢視錄音帶狀态,請查詢 sys.dm_io_backup_tapes。如果裝入操作沒有挂起,則該等待類型可能訓示錄音帶機發生硬體問題。

BACKUPBUFFER

在備份任務等待資料或等待用來存儲資料的緩沖區時發生。此類型不常見,隻有當任務等待裝入錄音帶時才會出現。

BACKUPIO

BACKUPTHREAD

當某任務正在等待備份任務完成時出現。等待時間可能較長,從幾分鐘到幾個小時。如果被等待的任務正處于 I/O 程序中,則該類型不訓示發生問題。

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

當某任務正在等待通路檔案(外部備份處于活動狀态)時出現。針對每個正在等待的使用者程序報告該狀态。每個使用者程序大于五的計數可能訓示外部備份需要太長時間才能完成。

DLL_LOADING_MUTEX

在等待 XML 分析器 DLL 加載時出現。

DROPTEMP

在上次嘗試删除臨時對象失敗後再進行下次嘗試之前出現。對于每一次失敗的删除嘗試,等待持續時間都以指數形式增長。

DTC

當某任務正在等待用于管理狀态轉換的事件時出現。該狀态控制當 SQL Server 接收到 Microsoft 分布式事務處理協調器 (MS DTC) 服務不可用的通知之後執行 MS DTC 事務恢複的時間。

該狀态還說明在 SQL Server 啟動了 MS DTC 事務送出并且 SQL Server 正在等待 MS DTC 送出完成時進行等待的任務。

DTC_ABORT_REQUEST

當 MS DTC 工作線程會話正在等待獲得 MS DTC 事務的所有權時,在該會話中出現。當 MS DTC 擁有了事務後,該會話可以復原事務。通常,該會話将等待另一個正在使用事務的會話。

DTC_RESOLVE

當恢複任務正在等待跨資料庫事務中的 master 資料庫以查詢該事務的結果時出現。

DTC_STATE

當某任務正在等待對内部 MS DTC 全局狀态對象的更改進行保護的事件時出現。該狀态應當保持非常短的時間。

DTC_TMDOWN_REQUEST

當 SQL Server 接收到 MS DTC 服務不可用的通知時,在 MS DTC 工作線程會話中出現。首先,工作線程将等待 MS DTC 恢複程序啟動。然後,工作線程等待擷取其正在處理的分布式事務的結果。此過程可能一直執行,直到重建立立與 MS DTC 服務的連接配接。

DTC_WAITFOR_OUTCOME

當恢複任務等待 MS DTC 處于活動狀态以啟用準備好的事務的解決方法時出現。

DUMP_LOG_COORDINATOR

當主任務正在等待子任務生成資料時出現。該狀态通常不會出現。長時間的等待訓示出現意外的阻塞。應當對子任務進行調查。

EC

EE_PMOLOCK

在語句執行過程中特定的記憶體配置設定類型同步期間出現。

EE_SPECPROC_MAP_INIT

在對内部過程哈希表建立進行同步期間發生。此等待隻能發生在 SQL Server 執行個體啟動之後對哈希表的初始通路期間。

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 等待 Bulkload I/O 完成時出現。

INDEX_USAGE_STATS_MUTEX

IO_AUDIT_MUTEX

在跟蹤事件緩沖區同步期間出現。

IO_COMPLETION

在等待 I/O 操作完成時出現。通常,該等待類型表示非資料頁 I/O。資料頁 I/O 完成等待顯示為 PAGEIOLATCH_* waits。

KSOURCE_WAKEUP

在等待來自服務控制管理器的請求期間由服務控制任務使用。可能會出現長時間等待,這并不訓示出現問題。

KTM_ENLISTMENT

KTM_RECOVERY_MANAGER

KTM_RECOVERY_RESOLUTION

LATCH_DT

等待 DT(破壞)闩鎖時出現。它不包括緩沖區闩鎖或事務标記闩鎖。sys.dm_os_latch_stats 中提供了 LATCH_* waits 的清單。請注意,sys.dm_os_latch_stats 将 LATCH_NL、LATCH_SH、LATCH_UP、LATCH_EX 以及 LATCH_DT 等待分到一組。

LATCH_EX

等待 EX(排他)闩鎖時出現。它不包括緩沖區闩鎖或事務标記闩鎖。sys.dm_os_latch_stats 中提供了 LATCH_* waits 的清單。請注意,sys.dm_os_latch_stats 将 LATCH_NL、LATCH_SH、LATCH_UP、LATCH_EX 以及 LATCH_DT 等待分到一組。

LATCH_KP

等待 KP(保持)闩鎖時出現。它不包括緩沖區闩鎖或事務标記闩鎖。sys.dm_os_latch_stats 中提供了 LATCH_* waits 的清單。請注意,sys.dm_os_latch_stats 将 LATCH_NL、LATCH_SH、LATCH_UP、LATCH_EX 以及 LATCH_DT 等待分到一組。

LATCH_NL

LATCH_SH

等待 SH(共享)闩鎖時出現。它不包括緩沖區闩鎖或事務标記闩鎖。sys.dm_os_latch_stats 中提供了 LATCH_* waits 的清單。請注意,sys.dm_os_latch_stats 将 LATCH_NL、LATCH_SH、LATCH_UP、LATCH_EX 以及 LATCH_DT 等待分到一組。

LATCH_UP

等待 UP(更新)闩鎖時出現。它不包括緩沖區闩鎖或事務标記闩鎖。sys.dm_os_latch_stats 中提供了 LATCH_* waits 的清單。請注意,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

當某任務正在等待日志緩沖區的空間以存儲日志記錄時出現。連續的高值可能訓示日志裝置無法跟上伺服器生成的日志量。

LOGMGR

在資料庫關閉過程中,當某任務正在等待任何未完成的日志 I/O 在關閉日志之前完成時出現。

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 調用 SQL Server Native Client OLE DB 通路接口時出現。該等待類型不用于同步。而是用于訓示調用 OLE DB 通路接口的持續時間。

ONDEMAND_TASK_QUEUE

在背景任務等待高優先級系統任務請求時出現。長時間的等待訓示一直沒有要處理的高優先級請求,不應引起關注。

PAGEIOLATCH_DT

在任務等待 I/O 請求中緩沖區的闩鎖時發生。闩鎖請求處于“破壞”模式。長時間的等待可能訓示磁盤子系統出現問題。

PAGEIOLATCH_EX

在任務等待 I/O 請求中緩沖區的闩鎖時發生。闩鎖請求處于“獨占”模式。長時間的等待可能訓示磁盤子系統出現問題。

PAGEIOLATCH_KP

在任務等待 I/O 請求中緩沖區的闩鎖時發生。闩鎖請求處于“保持”模式。長時間的等待可能訓示磁盤子系統出現問題。

PAGEIOLATCH_NL

PAGEIOLATCH_SH

在任務等待 I/O 請求中緩沖區的闩鎖時發生。闩鎖請求處于“共享”模式。長時間的等待可能訓示磁盤子系統出現問題。

PAGEIOLATCH_UP

在任務等待 I/O 請求中緩沖區的闩鎖時發生。闩鎖請求處于“更新”模式。長時間的等待可能訓示磁盤子系統出現問題。

PAGELATCH_DT

在任務等待不處于 I/O 請求中的緩沖區闩鎖時發生。闩鎖請求處于“破壞”模式。

PAGELATCH_EX

在任務等待不處于 I/O 請求中的緩沖區闩鎖時發生。闩鎖請求處于“獨占”模式。

PAGELATCH_KP

在任務等待不處于 I/O 請求中的緩沖區闩鎖時發生。闩鎖請求處于“保持”模式。

PAGELATCH_NL

PAGELATCH_SH

在任務等待不處于 I/O 請求中的緩沖區闩鎖時發生。闩鎖請求處于“共享”模式。

PAGELATCH_UP

在任務等待不處于 I/O 請求中的緩沖區闩鎖時發生。闩鎖請求處于“更新”模式。

PARALLEL_BACKUP_QUEUE

在序列化由 RESTORE HEADERONLY、RESTORE FILELISTONLY 或 RESTORE LABELONLY 生成的輸出時出現。

PRINT_ROLLBACK_PROGRESS

用于等待使用者程序在已認證 ALTER DATABASE 終止子句完成轉換的資料庫中結束。有關詳細資訊,請參閱 ALTER DATABASE (Transact-SQL)。

QNMANAGER_ACQUIRE

QPJOB_KILL

訓示異步統計資訊自動更新在開始運作時通過調用 KILL 指令而取消。終止線程處于挂起狀态,等待它開始偵聽 KILL 指令。正常情況下,該值不到一秒鐘。

QPJOB_WAITFOR_ABORT

訓示異步統計資訊自動更新在運作時通過調用 KILL 指令而取消。目前更新已完成,但是在終止線程消息協調完成之前一直于挂起狀态。這是一個普通而少見的狀态,應當非常短暫。正常情況下,該值不到一秒鐘。

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

在備用資料庫中同步資料庫狀态期間出現。

RG_RECONFIG

在調用 ALTER RESOURCE GOVERNOR RECONFIGURE 或 ALTER RESOURCE GOVERNOR DISABLE 時出現。

REPL_CACHE_ACCESS

在同步複制項目緩存的期間出現。在這些等待期間,複制日志讀取器将停止,已釋出表中的資料定義語言 (DDL) 語句也将被阻止。

REPL_SCHEMA_ACCESS

在同步複制架構版本資訊的期間出現。該狀态在下列情況下存在:針對複制對象執行 DDL 語句時,以及日志讀取器根據 DDL 出現次數生成或使用版本控制架構時。

REPLICA_WRITES

在任務等待将頁寫入資料庫快照或 DBCC 副本的操作完成時出現。

REQUEST_DISPENSER_PAUSE

在任務等待所有未完成的 I/O 完成時出現,以便可以為快照備份當機檔案的 I/O。

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

在嘗試删除臨時安全密鑰失敗之後并在重試之前出現。

SERVER_IDLE_CHECK

當資源螢幕正在嘗試将 SQL Server 執行個體聲明為空閑或正在嘗試喚醒時,在 SQL Server 執行個體空閑狀态的同步期間出現。

SHUTDOWN

在關閉語句等待活動連接配接退出時出現。

SLEEP_BPOOL_FLUSH

當檢查點為了避免磁盤子系統泛濫而中止新 I/O 的釋出時出現。

SLEEP_DBSTARTUP

在等待所有資料庫恢複時資料庫的啟動期間出現。

SLEEP_DCOMSTARTUP

通常在等待 DCOM 初始化完成時 SQL Server 執行個體的啟動期間出現。

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

在等待未完成的 HTTP 連接配接退出的過程中 SQL Server 的關閉期間出現。

SOAP_READ

在等待 HTTP 網絡讀取完成時出現。

SOAP_WRITE

在等待 HTTP 網絡寫入完成時出現。

SOS_CALLBACK_REMOVAL

在為了删除回調而對回調清單執行同步期間出現。伺服器初始化完成之後,此計數器可能不會更改。

SOS_LOCALALLOCATORLIST

在 SQL Server 記憶體管理器中進行内部同步期間出現。

SOS_MEMORY_USAGE_ADJUSTMENT

在池之間調整記憶體使用情況時出現。

SOS_OBJECT_STORE_DESTROY_MUTEX

當破壞池中的對象時在記憶體池中進行内部同步期間出現。

SOS_PROCESS_AFFINITY_MUTEX

在同步通路程序關聯設定期間出現。

SOS_RESERVEDMEMBLOCKLIST

SOS_SCHEDULER_YIELD

在任務自願為要執行的其他任務生成計劃程式時出現。在該等待期間任務正在等待其量程更新。

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

在等待通路 appdomain 中已加載的程式集清單時出現。

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

在同步事務中的脫離以及事務登記成員之間的資料庫鎖數時出現

本文轉自歡醉部落格園部落格,原文連結http://www.cnblogs.com/zhangs1986/p/3680973.html如需轉載請自行聯系原作者

歡醉