sql server 各類等待類型-轉

等待的類型

資源等待

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

隊列等待

當工做線程空閒,等待分配工做時便會發生隊列等待。隊列等待一般發生在系統後臺任務(如監視死鎖以及清除已刪除的記錄等任務)中。這些任務將等待工做請求被放入工做隊列。即便沒有新數據包放入隊列,隊列等待也可能按期處於活動狀態。數據庫

外部等待

當 SQL Server 工做線程正在等待外部事件(如擴展存儲過程調用或連接服務器查詢)完成時,便會發生外部等待。當診斷有妨礙的問題時,請記住,外部等待不會始終表示工做線程處於空閒狀態,由於工做線程可能處於活動狀態且正在運行某些外部代碼。緩存

sys.dm_os_wait_stats 顯示已經完成的等待的時間。此動態管理視圖不顯示當前等待。安全

若是出現下列任一狀況,則不認爲 SQL Server 工做線程處於等待狀態:服務器

  • 資源變得可用。網絡

  • 查詢非空。數據結構

  • 外部進程完成。架構

儘管線程再也不處於等待狀態,可是它沒必要當即開始運行。這是由於此類線程首先放入可運行工做線程的隊列中,而且必須等待量程在計劃程序中運行。併發

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

執行查詢期間的特定等待時間類型能夠說明查詢中存在瓶頸或失效點。一樣,若是服務器級的等待時間較長或等待計數較多,說明服務器實例內交互查詢交互中存在瓶頸或熱點。例如,鎖等待指示查詢爭用數據;頁 IO 閂鎖等待指示 IO 響應時間較慢;頁閂鎖更新指示表示文件佈局不正確。

此動態管理視圖的內容可經過運行如下命令來重置:

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

該命令將全部計數器重置爲 0。

注意注意

這些統計信息在每次從新啓動 SQL Server 時都不能持續存在,而且全部的數據均爲自上次重置統計信息或啓動服務器以來累積的數據。

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

 

等待類型

說明

ABR

標識爲僅供參考。不提供支持。不保證之後的兼容性。

ASSEMBLY_LOAD

在以獨佔的方式訪問程序集加載時出現。

ASYNC_DISKPOOL_LOCK

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

ASYNC_IO_COMPLETION

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

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

當某任務正在等待備份任務完成時出現。等待時間可能較長,從幾分鐘到幾個小時。若是被等待的任務正處於 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_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

當某任務正在等待訪問文件(外部備份處於活動狀態)時出現。針對每一個正在等待的用戶進程報告該狀態。每一個用戶進程大於五的計數可能指示外部備份須要太長時間才能完成。

DISPATCHER_QUEUE_SEMAPHORE

當調度程序池中的線程正在等待更多要處理的工做時出現。當調度程序處於空閒狀態時,此等待類型的等待時間預計要增長。

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

當主任務正在等待子任務生成數據時出現。該狀態一般不會出現。長時間的等待指示出現意外的阻塞。應當對子任務進行調查。

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 文件 I/O 操做須要綁定到關聯的事務,但該事務當前由另外一個會話擁有時出現。

FSAGENT

當 FILESTREAM 文件 I/O 操做等待的 FILESTREAM 代理資源正由另外一個文件 I/O 操做使用時出現。

FSTR_CONFIG_MUTEX

當等待另外一個 FILESTREAM 功能從新配置完成時出現。

FSTR_CONFIG_RWLOCK

當等待序列化對 FILESTREAM 配置參數的訪問時出現。

FT_METADATA_MUTEX

標識爲僅供參考。不提供支持。不保證之後的兼容性。

FT_RESTART_CRAWL

在全文爬網須要從上一個已知可用點從新啓動以便從暫時故障中恢復時出現。等待使當前正在此整體中工做的工做線程任務完成或退出當前步驟。

FULLTEXT GATHERER

在同步全文操做期間發生。

GUARDIAN

標識爲僅供參考。不提供支持。不保證之後的兼容性。

HTTP_ENUMERATION

在啓動時出現,以枚舉 HTTP 端點以啓動 HTTP。

HTTP_START

當鏈接正在等待 HTTP 完成初始化時出現。

IMPPROV_IOWAIT

當 SQL Server 等待 Bulkload I/O 完成時出現。

INTERNAL_TESTING

標識爲僅供參考。不提供支持。不保證之後的兼容性。

IO_AUDIT_MUTEX

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

IO_COMPLETION

在等待 I/O 操做完成時出現。一般,該等待類型表示非數據頁 I/O。數據頁 I/O 完成等待顯示爲 PAGEIOLATCH_* waits。

IO_RETRY

當 I/O 操做(例如讀取磁盤或寫入磁盤)因爲資源不足而失敗,而後重試時出現。

IOAFF_RANGE_QUEUE

標識爲僅供參考。不提供支持。不保證之後的兼容性。

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

當某任務正在等待日誌緩衝區的空間以存儲日誌記錄時出現。連續的高值可能指示日誌設備沒法跟上服務器生成的日誌量。

LOGGENERATION

標識爲僅供參考。不提供支持。不保證之後的兼容性。

LOGMGR

在數據庫關閉過程當中,當某任務正在等待任何未完成的日誌 I/O 在關閉日誌以前完成時出現。

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 調用 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 生成的輸出時出現。

PREEMPTIVE_ABR

標識爲僅供參考。不提供支持。不保證之後的兼容性。

PREEMPTIVE_AUDIT_ACCESS_EVENTLOG

在 SQL Server 操做系統 (SQLOS) 計劃程序切換到搶先模式時發生,以便將審覈事件寫入 Windows 事件日誌。

PREEMPTIVE_AUDIT_ACCESS_SECLOG

在 SQLOS 計劃程序切換到搶先模式時發生,以便將審覈事件寫入 Windows 安全日誌。

PREEMPTIVE_CLOSEBACKUPMEDIA

在 SQLOS 計劃程序切換到搶先模式時發生,以便關閉備份介質。

PREEMPTIVE_CLOSEBACKUPTAPE

在 SQLOS 計劃程序切換到搶先模式時發生,以便關閉磁帶備份設備。

PREEMPTIVE_CLOSEBACKUPVDIDEVICE

在 SQLOS 計劃程序切換到搶先模式時發生,以便關閉虛擬備份設備。

PREEMPTIVE_CLUSAPI_CLUSTERRESOURCECONTROL

在 SQLOS 計劃程序切換到搶先模式時發生,以便執行故障轉移羣集操做。

PREEMPTIVE_COM_COCREATEINSTANCE

在 SQLOS 計劃程序切換到搶先模式時發生,以便建立 COM 對象。

PREEMPTIVE_SOSTESTING

標識爲僅供參考。不提供支持。不保證之後的兼容性。

PREEMPTIVE_STRESSDRIVER

標識爲僅供參考。不提供支持。不保證之後的兼容性。

PREEMPTIVE_TESTING

標識爲僅供參考。不提供支持。不保證之後的兼容性。

PREEMPTIVE_XETESTING

標識爲僅供參考。不提供支持。不保證之後的兼容性。

PRINT_ROLLBACK_PROGRESS

用於等待用戶進程在已經過 ALTER DATABASE 終止子句完成轉換的數據庫中結束。有關詳細信息,請參閱 ALTER DATABASE (Transact-SQL)

QPJOB_KILL

指示異步統計信息自動更新在開始運行時經過調用 KILL 命令而取消。終止線程處於掛起狀態,等待它開始偵聽 KILL 命令。正常狀況下,該值不到一秒鐘。

QPJOB_WAITFOR_ABORT

指示異步統計信息自動更新在運行時經過調用 KILL 命令而取消。目前更新已完成,可是在終止線程消息協調完成以前一直於掛起狀態。這是一個普通而少見的狀態,應當很是短暫。正常狀況下,該值不到一秒鐘。

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 出現次數生成或使用版本控制架構時。

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

在嘗試刪除臨時安全密鑰失敗以後並在重試以前出現。

SECURITY_MUTEX

當等待互斥體時出現,這些互斥體控制對可擴展的密鑰管理 (EKM) 加密提供程序的全局列表以及 EKM 會話的會話做用域列表的訪問。

SEQUENTIAL_GUID

當正在獲取新的連續 GUID 時出現。

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_WAITFOR_0_DISCON

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

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_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

在等待訪問 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

當某任務正在等待工做線程運行時出現。這可能指示最大工做線程數設置太低,或批處理執行時間過長,從而減小可知足其餘批處理的工做線程數。

TIMEPRIV_TIMEPERIOD

在擴展事件計時器進行內部同步期間出現。

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

在內存不足期間事務日誌掃描等待可用內存時出現。

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

標識爲僅供參考。不提供支持。不保證之後的兼容性。

相關文章
相關標籤/搜索