Sql-Server

T-SQL - OPTION (FAST x) 和跟踪標誌 8722

  • February 18, 2021

我已經搜尋了很長時間,仍然沒有找到我的問題的答案。

我們的 Dynamics AX 正在使用查詢提示 OPTION (FAST x) 生成查詢,這有時會強制使用錯誤的執行計劃。開發人員說它是預設的,很難改變(必須在所有形式上固定)。

所以我正在尋找一種使用跟踪標誌覆蓋這些提示的方法。我發現了可愛的跟踪標誌 8722,它聲稱可以使 SQL Server 忽略一些查詢提示,尤其是 OPTION 子句中的提示。

但是,這在我的情況下不起作用。我也嘗試啟用跟踪標誌 8602(禁用索引提示),但我的查詢仍在使用 FAST x 提示執行(它比我實際刪除 OPTION 子句時慢得多)。

我也嘗試清除計劃記憶體,但無濟於事。

有任何想法嗎?我錯過了什麼嗎?

PS 我全域啟用了跟踪標誌,這是 SQL Server 2012 開發版

據我所知,跟踪標誌 8722、8755 和 8602 從未被正式記錄。上次我記得 8722 和 8755 有效是在 SQL Server 2000 中,因此您發現它們在 SQL Server 2012 中被忽略也就不足為奇了。跟踪標誌 8602 在 SQL Server 2019 中仍然作為全域或啟動標誌起作用專門忽略索引提示。

對於特定的查詢模式,通常可以FAST n使用計劃指南刪除提示。即便如此,最好的解決方法是讓 AX 開發人員在應用程序方面對其進行修復。

引用自:https://dba.stackexchange.com/questions/78306