您目前已離線,請等候您的網際網路重新連線

啟用計劃會影響 SQL Server 查詢最佳化器行為,可以由不同的追蹤旗標,在特定查詢層級上控制

請注意--重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,且可能由 Microsoft Community 利用 Community Translation Framework技術或人工進行事後編修。翻譯過程並無專業譯者參與。Microsoft 同時提供使用者人為翻譯、機器翻譯及社群編修後的機器翻譯三種版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,所有翻譯文章都可能不盡完美,內容都可能出現詞彙、語意或文法上的錯誤。就翻譯內容之不正確或錯誤,或客戶因使用翻譯內容所產生的任何損害,微軟不負擔任何責任。Microsoft將依合理的商業努力不斷地更新機器翻譯軟體和工具,以期能為使用者提供更好的服務。

按一下這裡查看此文章的英文版本:2801413
簡介
從 Microsoft SQL Server 2000 Service Pack 3 (SP3) 開始,必須由追蹤旗標所控制的 SQL Server 查詢處理器小組採用的原則,查詢的計劃的執行可能潛藏會影響任何 hotfix。除了外修正程式,並以不正確的結果或損毀,可能會造成的錯誤,這些 hotfix 會關閉預設的情況下,而追蹤旗標,才能啟用修正程式。此原則可協助避免執行計劃,現有的工作負載,在安裝 hotfix 或安全性更新時可能會發生非預期的變更。

通常在啟動時,或在使用者工作階段中,會啟用追蹤旗標。不過,這可能會有未預期的效果,在某些查詢中現有的資料庫應用程式。例如,假設應用程式或包含多個的查詢的工作負載,而有些這些查詢的使用效率不佳的查詢執行計劃,藉由啟用追蹤旗標控制相對應的 hotfix 已獲得改善。不過,其他查詢在套用相同的追蹤旗標時,可能會遇到最佳的執行計劃。這是因為執行計畫的選擇會影響編譯的執行個體中的所有查詢或工作階段,當對應的追蹤旗標已啟用。根據查詢和資料,變更查詢最佳化器所使用的模型可能改善和減少執行計劃的效率和編譯時間的特定的查詢。

如果追蹤旗標會影響任何查詢執行計劃不想要的方式,但可以改善某些其他查詢執行計劃,您可能想要啟用對應的追蹤旗標,特定查詢。透過啟用追蹤旗標,在目標查詢中之前, 的批次 (藉由使用 DBCC TRACEON 命令) 權限,然後停用的追蹤旗標 (藉由使用 DBCC TRACEOFF 命令) 權限,在查詢之後,您可以執行這項操作。不過,這可能永遠無法控制現有的應用程式的考慮改用 SQL 批次文字。您可能會遇到現有的工作負載中的不良的查詢效能,而且想要將可用的影響計劃的變更套用至查詢中,而不變更它本身的批次文字。您可以使用查詢層級選項啟用追蹤旗標只有特定的查詢。

啟動 Microsoft SQL Server 2005 Service Pack 2 (SP2) 與 Microsoft SQL Server 2008,查詢層級選項"QUERYTRACEON"使用。此選項可讓您只在單一查詢編譯期間啟用影響計劃的追蹤旗標。就像其他的查詢層級選項,您可以用它與計劃輔助線,來比對從任何工作階段中,執行查詢的文字,並正在編譯此查詢時,便會自動套用影響計劃的追蹤旗標。
其他相關資訊
使用查詢提示,可讓查詢最佳化器是由追蹤旗標可控制的計劃會影響變更為 QUERYTRACEON 提示。QUERYTRACEON 提示被指定為類似於其他選項子句的一部份 查詢提示.

語法

<querytraceon_hint> ::=       { QUERYTRACEON trace_flag_number }

引數

QUERYTRACEON trace_flag_number

這會指定查詢的編譯期間啟用的計劃影響追蹤旗標數字。支援下列的追蹤旗標號碼:
追蹤旗標 微軟知識庫文件用於
4199974006累積更新 6 的 SQL Server 2005 Service Pack 3;
累積更新 7 的 SQL Server 2008;
累積更新 7 的 SQL Server 2008 Service Pack 1;
SQL Server 2008 R2 和更新版本。
所有追蹤旗標所都涵蓋的 4199974006累積更新 6 的 SQL Server 2005 Service Pack 3;
累積更新 7 的 SQL Server 2008;
累積更新 7 的 SQL Server 2008 Service Pack 1;
SQL Server 2008 R2 和更新版本。
23352413549SQL Server 2005 及更新版本。
23402009160SQL Server 2005 及更新版本。
2389、 2390年SQL Server 2005 及更新版本。在 SQL Server 2005 中的已知問題的環境,請參閱 929278。
4136980653累積更新 9 的 SQL Server 2005 Service Pack 3;
累積更新 7 的 SQL Server 2008 Service Pack 1;
SQL Server 2008 R2 和更新版本的累積更新 2。
41372658214累積更新 8 的 SQL Server 2008 Service Pack 2;
累積更新 7 的 SQL Server 2008 Service Pack 3;
累積更新 5 的 SQL Server 2008 R2 Service Pack 1;
SQL Server 2012年和更新版本的累積更新 1。
41382667211累積更新 13 的 SQL Server 2008 R2;
累積更新 7 的 SQL Server 2008 R2 Service Pack 1;
累積更新 1 的 SQL Server 2008 R2 Service Pack 2;
SQL Server 2012年和更新版本的累積更新 2..


下列計劃影響追蹤旗標可用於 Microsoft SQL Server 2014年:
追蹤旗標描述
9481以預設資料庫相容性層級 120 在執行 SQL Server 2014年時使用。追蹤旗標 9481 強迫查詢最佳化器在建立查詢計劃時使用的基數 estimator 的版本 70 (SQL Server 2012年版本)。
2312當使用資料庫相容性層級 110,也就是 SQL Server 2012年的相容性層級執行 SQL Server 2014年時使用。追蹤旗標 2312年強迫查詢最佳化器在建立查詢計劃時使用的基數 estimator 的版本 120 (SQL Server 2014年版本)。

註解

以外的表格中所列的追蹤旗標的追蹤旗標不支援 [QUERYTRACEON] 選項。不過,此選項將不會傳回任何錯誤或警告如果使用不支援的追蹤標旗號碼。如果指定的追蹤旗標不會影響查詢執行計劃,將以無訊息模式忽略 [] 選項。

可以OPTION子句中指定一個以上的追蹤旗標,如果 QUERYTRACEON trace_flag_number 重複使用不同的追蹤旗標的數字。


執行查詢,以使用 QUERYTRACEON 選項需要在sysadmin固定伺服器角色的成員資格。


[QUERYTRACEON] 選項可用於 計劃輔助線.
範例
  • 您可以啟用所有特定查詢的追蹤旗標 4199 所受的影響計劃的 hotfix。例如,您可以使用下列查詢:
    SELECT x FROM correlated WHERE f1 = 0 and f2 = 1 OPTION (QUERYTRACEON 4199)
  • 您可以啟用所有追蹤旗標 4199 和特定查詢的 4137 所受的影響計劃的 hotfix。例如,您可以使用下列查詢:
    SELECT x FROM correlated WHERE f1 = 0 AND f2 = 1 OPTION (QUERYTRACEON 4199, QUERYTRACEON 4137)

警告:本文為自動翻譯

內容

文章識別碼:2801413 - 最後檢閱時間:01/20/2016 02:48:00 - 修訂: 5.0

Microsoft SQL Server 2005 Enterprise Edition, Microsoft SQL Server 2005 Developer Edition, Microsoft SQL Server 2005 Standard Edition, Microsoft SQL Server 2005 Workgroup Edition, Microsoft SQL Server 2005 Enterprise X64 Edition, Microsoft SQL Server 2005 Standard X64 Edition, Microsoft SQL Server 2005 Enterprise Edition for Itanium Based Systems, Microsoft SQL Server 2008 Enterprise, Microsoft SQL Server 2008 Developer, Microsoft SQL Server 2008 Standard, Microsoft SQL Server 2008 Workgroup, Microsoft SQL Server 2008 R2 Datacenter, Microsoft SQL Server 2008 R2 Enterprise, Microsoft SQL Server 2008 R2 Developer, Microsoft SQL Server 2008 R2 Standard, Microsoft SQL Server 2008 R2 Workgroup, Microsoft SQL Server 2008 R2 Express, Microsoft SQL Server 2012 Enterprise, Microsoft SQL Server 2012 Developer, Microsoft SQL Server 2012 Standard, Microsoft SQL Server 2012 Web, Microsoft SQL Server 2012 Express, Microsoft SQL Server 2014 Developer, Microsoft SQL Server 2014 Enterprise, Microsoft SQL Server 2014 Express, Microsoft SQL Server 2014 Standard

  • kbinfo kbsurveynew kbexpertiseinter kbhowto kbmt KB2801413 KbMtzh
意見反應