使用 Microsoft 登录
登录或创建帐户。
你好,
使用其他帐户。
你有多个帐户
选择要登录的帐户。

症状

默认情况下,在 2016 和 2017 Microsoft SQL Server为 tempdb 数据库启用间接检查点。 在繁重的工作负荷条件下,可能会发生“不产生计划程序”错误,sys.dm_os_spinlock_stats DMV 显示DP_LIST自旋锁类型的提升自旋锁争用。

状态

Microsoft 已经确认这是一个列于“适用范围”部分的 Microsoft 产品问题。

解决方法

以下SQL Server累积更新中修复了此问题:

关于SQL Server的累积更新:

SQL Server的每个新的累积更新都包含上一个累积更新中包含的所有修补程序和所有安全修补程序。 查看SQL Server的最新累积更新:

解决方法

若要解决此问题,请使用以下数据定义语言 (DDL) 语句之一关闭 tempdb 数据库上的间接检查点。

应按如下所示执行此操作:

  • 在 modeldb 数据库 (这也更改了新数据库) 的默认值,请运行以下语句:

    ALTER DATABASE [model] SET TARGET_RECOVERY_TIME = 0 MINUTES

  • 或者,每次实例启动时,使用以下语句直接在 tempdb 数据库上使用SQL Server 代理:

    ALTER DATABASE [tempdb] SET TARGET_RECOVERY_TIME = 0 MINUTES

  • 或者,使用以下语句定期对 tempdb 数据库发出手动检查点:

    use tempdbgo checkpointgo



    此外,TF 3468 可用于在 tempdb 上禁用间接检查点。

参考

了解 Microsoft 用于描述软件更新的术语。 有关详细信息,请参阅以下文章:

需要更多帮助?

需要更多选项?

了解订阅权益、浏览培训课程、了解如何保护设备等。

社区可帮助你提出和回答问题、提供反馈,并听取经验丰富专家的意见。

此信息是否有帮助?

你对语言质量的满意程度如何?
哪些因素影响了你的体验?
按“提交”即表示你的反馈将用于改进 Microsoft 产品和服务。 你的 IT 管理员将能够收集此数据。 隐私声明。

谢谢您的反馈!

×