KB3189813-更新引入了 SQL Server 2016 中的 [使用提示查詢提示] 引數

摘要

此更新引進了新的 query 提示引數,使用提示可讓您以無提升認證的方式驅動查詢優化程式,或不是 sysadmin 伺服器角色的成員。 這個新查詢提示的語法如下所示:

<query_hint > ::={USE HINT(N'key' [ [, ]...n ])}

此更新程式也會引入下列提示選項,這些選項可與 USE 提示 引數搭配使用。

對等追蹤標誌

描述

適用于

ASSUME_JOIN_PREDICATE_DEPENDS_ON_FILTERS

TF 9476

使 SQL Server 使用簡單的包容假設(而不是連接的預設基本包容假設)來產生查詢方案(在查詢最佳化工具下方) SQL Server 2014 (12. x)或更新版本的基數估計模型。

ASSUME_MIN_SELECTIVITY_FOR_FILTER_ESTIMATES

TF 4137

使 SQL Server 在評估與需要相關的篩選器謂語時,使用最小選擇性來產生方案。此提示名稱會平行于 在 sql server 2012 (11. x)與較舊版本的基數估計模型搭配使用追蹤標記9471 與基數估計模型為 sql server 2014 (12. x)或更高版本時,追蹤標誌4137。

DISABLE_BATCH_MODE_ADAPTIVE_JOINS

停用批次模式自我調整連接。

從 SQL Server 2017 開始

DISABLE_BATCH_MODE_MEMORY_GRANT_FEEDBACK

停用批次模式記憶體授與意見反應。

從 SQL Server 2017 開始

DISABLE_DEFERRED_COMPILATION_TV

停用表格變數延遲編譯。

從 SQL Server 2019 開始

DISABLE_INTERLEAVED_EXECUTION_TVF

停用多語句資料表值函數的交叉執行。

從 SQL Server 2017 開始

DISABLE_OPTIMIZED_NESTED_LOOP

TF 2340

在產生查詢方案時,指示查詢處理器不要使用排序運算(批次排序)來優化嵌套迴圈連接。

DISABLE_OPTIMIZER_ROWGOAL

TF 4138

使 SQL Server 產生無法將資料行目標修改用於包含這些關鍵字之查詢的方案:

  • 返回頁首

  • 選項(快速 N)

  • 存在

DISABLE_PARAMETER_SNIFFING

TF 4136

指示查詢最佳化工具在使用一或多個參數編譯查詢時,使用平均資料分配。這個指令可讓查詢計劃獨立于編譯查詢時第一次使用的參數值。使用這個提示來覆寫資料庫範圍的 設定設定 PARAMETER_SNIFFING = OFF.

DISABLE_ROW_MODE_MEMORY_GRANT_FEEDBACK

停用列模式記憶體授與意見反應。

從 SQL Server 2019 開始

DISABLE_TSQL_SCALAR_UDF_INLINING

停用 [標量 UDF 內嵌]。

從 SQL Server 2019 開始

DISALLOW_BATCH_MODE

停用批次模式執行。

從 SQL Server 2019 開始

ENABLE_HIST_AMENDMENT_FOR_ASC_KEYS

TF 4139

針對需要基數估計的任何前導索引欄,啟用自動產生的快速統計資料(長條圖修正)。 用來評估基數的長條圖將會在查詢編譯時間調整,以考慮此資料行的實際最大值或最小值。

ENABLE_QUERY_OPTIMIZER_HOTFIXES

TF 4199

啟用查詢最佳化工具修復程式(在 SQL Server 累計更新和 Service Pack 中發佈的變更)。 使用此提示來覆寫 資料庫範圍 的配置設定 QUERY_OPTIMIZER_HOTFIXES = 開啟.

FORCE_DEFAULT_CARDINALITY_ESTIMATION

TF 9481

強制使用查詢優化程式 與目前資料庫相容性等級相對應的基數估計模型。使用此提示來覆寫資料庫範圍 的配置設定 LEGACY_CARDINALITY_ESTIMATION = 開啟。

FORCE_LEGACY_CARDINALITY_ESTIMATION

TF 9481

強制使用查詢優化程式 SQL Server 2012 (11. x)及較舊版本的基數估計模型。使用這個提示來覆寫資料庫範圍的配置設定 LEGACY_CARDINALITY_ESTIMATION = 開啟.

QUERY_OPTIMIZER_COMPATIBILITY_LEVEL_n

在查詢層級強制執行查詢優化程式列為。這種行為的發生方式就是使用資料庫相容性等級編譯查詢 n,其中n是支援的資料庫相容性等級。請參閱sys.dm_exec_valid_use_hints ,以取得目前支援之 n 個值的清單。

在 SQL Server 2017 (十四)中開始(CU10)

如需詳細資訊,請參閱 提示(Transact-sql)-Query

其他相關資訊

此更新包含在 SQL Server 2016 的 Service Pack 1 中。

 

每個新組建的 SQL Server 2016 包含所有的修復程式,以及先前組建中所包含的所有安全性修正程式。 我們建議您安裝 SQL Server 2016 的最新組建

在下列情況中,SQL Server 查詢優化程式(QO)行為必須是相當常見的方式,而且傳統的是使用幾個(已記錄且未記錄的)追蹤標記來解決這些問題。 不過,在全域設定追蹤旗標時,它們可能會對其他工作負載產生負面影響。 此外,針對現有的應用程式啟用它們,並讓每個查詢都能使用選項 QUERYTRACEON ,讓他們能夠使用 sysadmin 固定伺服器角色的成員資格。 (雖然您可以使用「規劃指南」或「儲存程式」)來解決這種行為,但仍需要提升的認證。追蹤標記是用來暫時設定特定伺服器的特性,或關閉特定行為,可能難以管理和理解。如需有關追蹤標誌的詳細資訊,請參閱 Microsoft 開發人員網路(MSDN)網站上的追蹤標誌(transact-sql) 主題。

參考

瞭解 Microsoft 用於描述軟體更新的 詞彙

Need more help?

Expand your skills
Explore Training
Get new features first
Join Microsoft Insiders

Was this information helpful?

Thank you for your feedback!

Thank you for your feedback! It sounds like it might be helpful to connect you to one of our Office support agents.

×