这可能属于意见类别,但我很好奇人们是否使用跟踪标志 4199作为 SQL Server 的启动参数。用过的人,你是在什么情况下遇到查询回归的?
这似乎是一个全面的潜在性能优势,我正在考虑在我们的非生产环境中全局启用它,并让它静置几个月以找出任何问题。
4199 中的修复是否默认在 2014 年(或 2016 年)纳入优化器?虽然我理解不引入意外计划更改的情况,但将所有这些修复隐藏在版本之间似乎很奇怪。
我们使用的是 2008、2008R2,主要是 2012。
就个人而言,每当我为新项目构建新服务器时,我总是会全局启用 TF4199。当我将现有实例升级到更新版本时,这同样适用。
TF 启用会影响应用程序行为的新修复程序,但对于新项目而言,回归风险不是问题。对于从以前版本升级的实例,新旧版本之间的差异本身就是一个问题,并且无论如何都必须处理计划回归,所以我更喜欢在启用 TF4199 的情况下使用它。
就现有数据库而言,只有一种方法可以知道:对其进行测试。您可以在现有设置上捕获工作负载并在启用标志后重放它。RML 实用程序可以帮助您自动化该过程,如本回答中所述。
显然,该标志会影响整个实例,因此您必须测试那里的所有数据库。