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 引擎中未繫結的循環,無法正確產生。
如果核心模式時間快速攀升,線程會在操作系統中花費大部分時間,而且需要核心偵錯來判斷此行為的根本原因。
如果核心時間和用戶時間未快速增加,線程可能會等候 、、
Sleep
WriteFile
或ReadFile
等WaitForSingleObject
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。