Sql-Server

sys.dm_os_wait_stats 中 SOS_SCHEDULER_YIELD 的 signal_wait_time_ms > wait_time_ms

  • May 13, 2021

關於SOS_SCHEDULER_YIELD使用時的問題sys.dm_os_wait_stats

不應該與等待類型signal_wait_time_ms完全相同嗎?wait_time_ms``SOS_SCHEDULER_YIELD

對於其他等待類型,信號等待是指工作執行緒在調度程序的可執行隊列中等待。因此,我得出結論,信號等待應該與總等待時間(= wait_time_msSOS_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 的信號等待更高。

由於該範例來自書中的螢幕截圖,因此編輯過程很可能導致無效資訊使其成為最終發布的結果。在那種情況下,我不會太擔心它。您可以聯繫作者,看看是否有可能發生這樣的事情(也許他們為了簡單起見將多個測試的螢幕截圖拼接在一起)。

引用自:https://dba.stackexchange.com/questions/291330