1. 程式人生 > >sql server等待類型

sql server等待類型

常見操作 臨時對象 垃圾 網絡數據 緩沖 創建 例如 哪些 配置

等待的類型

資源等待

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

隊列等待

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

外部等待

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

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

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

  • 資源變得可用。

  • 查詢非空。

  • 外部進程完成。

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

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

執行查詢期間的特定等待時間類型可以說明查詢中存在瓶頸或失效點。同樣,如果服務器級的等待時間較長或等待計數較多,說明服務器實例內交互查詢交互中存在瓶頸或熱點。例如,鎖等待指示查詢爭用數據;頁 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

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

sql server等待類型