改進
假設你安裝的是 SQL Server 2017。 此改進引入了新的 USE HINT 「QUERY_OPTIMIZER_COMPATIBILITY_LEVEL_n」,以強制查詢優化器在查詢層級執行行為,彷彿查詢以資料庫相容性等級 n 編譯, 其中 n 是以下列表中的支援資料庫相容性等級:100、110、120、130 或 140。
附註:
若此提示是透過資料庫範圍設定、追蹤標誌或查詢提示強制執行,則不會覆寫預設或舊有的基數估計設定。
- 如果透過資料庫範圍設定、追蹤標誌或查詢提示強制進行舊有基數估計,查詢仍會依指示使用舊有基數估計。
- 若因任何原因使用預設基數估計, (強制使用,或查詢執行時未強制舊有基數估計) ,查詢將使用與查詢優化器相關的基數估計器,該查詢將用於所請求的資料庫版本。
「ENABLE_QUERY_OPTIMIZER_HOTFIXES」、TF) 4199 (trace flag 及其他啟用優化器熱修正的方法,在某些情況下可能會覆蓋優化器的預設 RTM 行為,無論所請求的資料庫相容性等級為何。
此提示僅影響查詢優化器的行為。 它不會影響 SQL Server 其他可能依資料庫相容性等級而定的功能,例如某些資料庫功能的可用性。
此提示不需特殊授權,且可搭配圖紙指南使用。
更多資訊
欲了解更多資訊,可參考以下連結:
- 查詢提示 (Transact - SQL)
- DBCC TRACEON - 追蹤旗標 (Transact SQL)
- ALTER DATABASE SCOPED CONFIGURATION (Transact-SQL)
解決方式
此更新包含於以下 SQL Server 累積更新中:
關於 SQL Server 的累積更新:
每次新的 SQL Server 累積更新都包含了之前累積更新中包含的所有熱修補與安全修補。 請查看 SQL Server 的最新累積更新:
參考資料
了解 Microsoft 用來說明軟體更新的術語。