徵兆
根據預設,Microsoft SQL Server 2016 和 2017 中的範本資料庫會開啟間接檢查點。 在負載過重的情況下,可能會發生「未收益排程器」錯誤,且sys.dm_os_spinlock_stats DMV 會顯示DP_LIST轉鎖類型的提升轉鎖等待。
狀態
Microsoft 已確認<適用於>一節所列的 Microsoft 產品確實有上述問題。
解決方案
此問題已在下列SQL Server累積更新中修正:
關於SQL Server的累積更新:
每個SQL Server的新累積更新都包含所有 Hotfix 以及先前累積更新隨附的所有安全性修正。 查看SQL Server的最新累積更新:
因應措施
若要解決此問題,請使用下列其中一種資料定義語言 (DDL) 語句,關閉範本資料庫上的間接檢查點。
這應該會如下所示:
-
在 modeldb 資料庫 (這也會變更新資料庫) 的預設值,請執行下列語句: ALTER DATABASE [model] SET TARGET_RECOVERY_TIME = 0 MINUTES
-
或者,在每次實例啟動時直接在範本資料庫上使用下列語句來使用SQL Server Agent: ALTER DATABASE [tempdb] SET TARGET_RECOVERY_TIME = 0 MINUTES
-
或者,使用下列語句定期針對範本資料庫發出手動檢查點: use tempdbgo checkpointgo 此外,TF 3468可用來停用範本上的間接檢查點。
參考
瞭解 Microsoft 用來描述軟體更新的術語。 如需詳細資訊,請參閱下列文章: