Share via


MSSQLSERVER_17883

適用於:SQL Server

詳細資料

屬性
產品名稱 SQL Server
事件識別碼 17883
事件來源 MSSQLSERVER
元件 SQLEngine
符號名稱 SRV_SCHEDULER_NONYIELDING
訊息文字 處理序 %ld:%ld:%ld (0x%lx) 工作者 0x%p 在排程器 %ld 上似乎沒有產量。 執行緒建立時間: %I64d. 已使用的約略執行緒 CPU:核心 %I64d ms,使用者 %I64d ms。 處理序使用情形 %d%%。 系統閒置率 %d%%。 間隔: %I64d 毫秒。

說明

表示執行緒無法在排程器上產生問題。 此錯誤可能是因為 SQL Server 中的作業系統狀況、環境問題或軟體問題,或 SQL Server 沒有足夠的週期來執行所造成。 如果執行緒最終產生,此錯誤可能會消失。

使用者動作

如果您查看錯誤訊息資訊,您會看到某些行為出現。 例如:

  • 如果使用者模式時間快速攀升並繼續執行,則可能是 SQL Server 引擎中未系結的迴圈,無法正確產生。

  • 如果核心模式時間快速攀升,執行緒會在作業系統中花費大部分時間,而且需要核心偵錯來判斷此行為的根本原因。

  • 如果核心時間和使用者時間未快速增加,執行緒可能會等候 、、 SleepWriteFileReadFileWaitForSingleObject API 呼叫傳回。 或者,執行緒可能不會由作業系統排程。 API 停滯狀況通常需要核心模式偵錯來判斷其根本原因。

  • 如果 System Idle % 為低且 Process Utilization % 低,則 SQL Server 可能無法取得足夠的 CPU 週期。 檢查系統上其他應用程式的 CPU 使用率。 此外,請檢查是否在系統中進行分頁。 執行 SELECT * FROM sys.dm_os_ring_buffers 也可以提供更多詳細資料。

  • 如果 kernel + user 時間很低但 Process Utilization % 很高,則錯誤狀況可能表示先占式執行緒正在取用所有 CPU(例如垃圾收集)。

結合資訊與系統使用率和閒置時間,可以提供問題的本質見解。

若要瞭解產生此錯誤狀況的偵測邏輯和常見原因,請參閱 如何診斷和更正錯誤 17883、17884、17887 和 17888