KB4540107 - 修正:當工作階段數目達到 SQL Server 2016、2017 和 2019 的上限時,系統或背景工作可能會失敗

套用到
SQL Server 2016 Service Pack 2 SQL Server 2016 Developer - duplicate (do not use) SQL Server 2016 Enterprise - duplicate (do not use) SQL Server 2016 Enterprise Core - duplicate (do not use) SQL Server 2016 Standard - duplicate (do not use) SQL Server 2019 on Windows SQL Server 2017 Developer on Windows SQL Server 2017 Enterprise Core on Windows SQL Server 2017 Enterprise on Windows SQL Server 2017 Standard on Windows

症狀

根據 Microsoft SQL Server 2016 或 2019 中的使用者連線伺服器組態選項) ,使用者連線和系統或背景工作所使用的工作階段數目達到 32,767 個上限 (或更少時,系統或背景工作不會執行必要的系統或背景工作。 此外,錯誤記錄檔中可能會記錄錯誤 17300。 如果 SQL Server 需要此工作才能繼續按預期執行 (例如 XE Dispatcher 工作) ,這可能會導致 SQL Server 關閉。

狀態

Microsoft 已確認這是「適用對象」一節中列出的 Microsoft 產品中的問題。

解決方式

此問題已在下列 SQL Server 累積更新中修正:

關於 SQL Server 的累積更新:

SQL Server 的每個新累積更新都包含所有 Hotfix 和先前累積更新的所有安全性修正程式。 查看 SQL Server 的最新累積更新:

更多資訊

在 SQL Server 中,任何使用者連線或系統工作都必須具有介於 1 到 32,767 之間的唯一識別碼,在工作階段內執行。 前 50 個工作階段保留給系統工作,其餘的工作階段可在使用者連線和系統工作之間共用。 請注意,實際系統工作的數量會因伺服器或資料庫組態而異,例如使用可用性群組、執行 Full-Text 搜尋等等。 如果已建立足夠的使用者連線,以致沒有空間容納更多系統工作,嘗試建立其他系統工作可能會失敗。 即使系統管理員透過伺服器設定減少使用者連線的上限,也只能保證 50 個系統工作的空間。

此修正程式可將保證的系統工作數目增加到至少 500 個。 這意味著,如果配置的使用者連線數設定為預設值或超過 32,267,則實際使用者連線數將限制為 32,267,以確保可以執行 500 個系統工作。 如果使用者將使用者連線數目設定為少於 32,267,則在套用此修正程式) 之前,所有剩餘空間(最多 32,767 個)將可供系統工作 (而不是 50 個系統工作使用。

參考資料

了解 Microsoft 用來說明軟體更新的術語。