Nel*_*2.0 9 performance sql-server sql-server-2012
我已经搜索了很长时间,仍然没有找到我的问题的答案。
我们的 Dynamics AX 使用查询提示 OPTION (FAST x) 生成查询,这有时会强制使用错误的执行计划。开发人员说它是默认的并且很难改变(必须在所有形式上潜在地修复)。
所以我想找到一种使用跟踪标志覆盖这些提示的方法。我发现了可爱的跟踪标志 8722,它声称可以让 SQL Server 忽略一些查询提示,尤其是 OPTION 子句中的提示。
但是,这在我的情况下不起作用。我也尝试启用跟踪标志 8602(禁用索引提示),但我的查询仍在使用 FAST x 提示运行(它比我实际删除 OPTION 子句时慢得多)。
我也尝试清除计划缓存,但无济于事。
有任何想法吗?我错过了什么吗?
PS 我启用了全局跟踪标志,这是 SQL Server 2012 开发人员版
Pau*_*ite 11
据我所知,跟踪标志 8722、8755 和 8602 从未正式记录过。我记得上一次 8722 和 8755 有效是在 SQL Server 2000 中,因此您发现它们在 SQL Server 2012 中被忽略并不奇怪。跟踪标志 8602 在 SQL Server 2019 中仍然作为全局或启动标志起作用特别忽略索引提示。
对于特定的查询模式,通常可以FAST n
使用计划指南删除提示。即便如此,最好的解决方法是让 AX 开发人员在应用程序方面修复它。