Sql-Server
T-SQL - OPTION (FAST x) 和跟踪標誌 8722
我已經搜尋了很長時間,仍然沒有找到我的問題的答案。
我們的 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 開發人員在應用程序方面對其進行修復。