sys.dm_os_wait_stats 中 SOS_SCHEDULER_YIELD 的 signal_wait_time_ms > wait_time_ms
關於
SOS_SCHEDULER_YIELD
使用時的問題sys.dm_os_wait_stats
:不應該與等待類型
signal_wait_time_ms
完全相同嗎?wait_time_ms``SOS_SCHEDULER_YIELD
對於其他等待類型,信號等待是指工作執行緒在調度程序的可執行隊列中等待。因此,我得出結論,信號等待應該與總等待時間(=
wait_time_ms
)SOS_SCHEDULER_YIELD
相同sys.dm_os_wait_stats
。所以我的問題是,對於這個特定的等待類型,提到的兩列在這個 DMV 中應該具有相同的值。
更具體地說,我正在研究一個
signal_wait_time_ms
大於wait_time_ms
的情況,我想解釋一下這種差異。我正在查看的範例來自 Van de Laar 的《Pro SQL Server 2019 等待統計》一書。在第 120 頁的螢幕截圖中,對於
SOS_SCHEDULER_YIELD
.
從(強調我的)的文件中:
sys.dm_os_wait_stats
如果您看到 signal_wait_time_ms 高於 wait_time_ms,那麼根據目前文件,這是一個錯誤。如果它給您帶來問題,您應該將其報告給 Microsoft,以便他們可以調查出問題的地方。可能是基礎數據中的捨入錯誤導致了細微的差異(您沒有提到這兩個值相差多遠)。
你這樣說:
我正在查看的範例來自 Van de Laar 的《Pro SQL Server 2019 等待統計》一書。在第 120 頁的螢幕截圖中,SOS_SCHEDULER_YIELD 的信號等待更高。
由於該範例來自書中的螢幕截圖,因此編輯過程很可能導致無效資訊使其成為最終發布的結果。在那種情況下,我不會太擔心它。您可以聯繫作者,看看是否有可能發生這樣的事情(也許他們為了簡單起見將多個測試的螢幕截圖拼接在一起)。