【问题标题】:sql server changing compatibility level from 100 to 120sql server 将兼容级别从 100 更改为 120
【发布时间】:2019-01-18 08:55:47
【问题描述】:

将兼容性从 100 更改为 120

我们已经将一些数据库从 SQL server 2008 迁移到 SQL server2014 标准版,但兼容性级别没有更改,并且这些数据库配置了镜像的更多信息,如果我将兼容性级别从 100 更改为 120,对应用程序有影响吗?我已经读到,通过更改兼容性级别除了提高性能之外没有任何性能问题,我们可以拥有 SQL Server 2014 中的新功能,如果我错了,请纠正我最后我对镜像或应用程序有任何影响功能

【问题讨论】:

  • 在 DBA 网站上询问可能更好,但即使在那里也可能会觉得过于宽泛。在我们的大多数网站中,我们倾向于看到问题中提出一个问题。
  • “我已经读过,通过更改兼容性级别除了性能提升之外没有任何性能问题” 真的吗? 2014 年引入了一个全新的基数估计器,它可以有重大的性能变化,无论好坏(尽管大多数都有坏的,因为查询可能写得不好)。

标签: sql-server database-administration


【解决方案1】:

我已经读到通过更改兼容级别没有任何 除了改进之外的性能问题

你在哪里读到的?当然,性能可能会下降,因为在 2014 中引入了新的 cardinality estimator。所以你的一些query plans 可以从最佳变为次佳。这就是为什么仍然维护compatibility level 100 的原因,通过设置它,您告诉您的服务器使用old cardinality estimator 进行所有数据库查询。

如果只有少数查询变慢,您可以离开 compatibility level 120 并使用 9481 query trace flag 用于这些查询,如下所述:Enable plan-affecting SQL Server query optimizer behavior that can be controlled by different trace flags on a specific-query level

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多