簡介

Microsoft SQL Server 版本晚于 SQL Server 2000 Service Pack 3 (SP3) 以非預設狀態將大多數的修補程式傳遞至查詢最佳化工具,以防止現有生產客戶看到可能導致績效回歸的預期計畫變更。 一開始,每個 Hotfix 都分別在個別的追蹤標標下傳遞。 之後,這項作法已變更,因此大部分標標會合並在 4199 (標) 。 這項新作法從下列更新開始跨多個版本開始:

  • SQL Server 2005 Service Pack 3 (SP3) 累積更新 6

  • SQL Server 2008 Service Pack 1 (SP1) 累積更新套件 7

  • SQL Server 2008 R2 (RTM)

追蹤標號 4199 用來收集要在未來版本中成為預設之 Hotfix,而其他追蹤標號則用於修正程式在目前的表單中無意變成預設狀態的情況。 從 SQL Server 2016 RTM 開始,資料庫 COMPATIBILITY_LEVEL 設定會啟用預設上的追蹤標號 4199 相關 Hotfix。 本文將說明在 2016 及更新版本中,如何提供SQL Server的修補程式機制與政策。

其他相關資訊

在 SQL Server 2016 中,在資料庫 COMPATIBILITY_LEVEL 130 中啟用先前 SQL Server 版本中的追蹤標標 4199 hotfix,而不會啟用追蹤標號 4199。 追蹤標號 4199 會使用 130 相容性等級,來SQL Server 2016 年資料庫的任何修補程式。 由於追蹤標號 4199 僅適用于看到特定性能問題的客戶,因此建議客戶在將資料庫移至最新相容性等級後移除追蹤標號 4199,因為追蹤標號 4199 會重複使用,用於日後可能不適用於您的應用程式的修正程式,並可能導致生產系統的意外計畫績效變更。 這表示針對給定產品發行中支援的每個相容性等級,啟用不同的追蹤標號 4199 hotfix。 最新的相容性等級已在追蹤標號 4199 下啟用所有先前的修正。 這表示將資料庫升級至最新的相容性等級,並移除追蹤標號 4199,仍然啟用工作負載在資料庫升級之前所運用的所有修正,只是不是新的修正程式。 如果稍後客戶遇到查詢的績效問題,請嘗試在測試環境中啟用資料庫範圍選項 QUERY_OPTIMIZER_HOTFIXES 或查詢提示 ENABLE_QUERY_OPTIMIZER_HOTFIXES,以判斷問題是否解決。 請參閱有關 QUERY_OPTIMIZER_HOTFIXES 的檔。 

注意 根據預設,在 2016 SQL Server建立的資料庫會使用相容等級 130,而且已經啟用新的優化程式邏輯。

此模型的主要優點,是在升級程式期間降低生產系統的風險。 此方法會區分新主要版本的 SQL Server與自動啟用所有新查詢處理器變更。 由於主要版本升級會變更檔案格式,而且無法可逆,因此使用 COMPATIBILITY_LEVEL 設定是一個好方法,因為若在升級期間發現非預期的計畫績效問題,客戶可以快速降級。 如果客戶發現意外的計畫變更會阻止應用程式升級,客戶可以使用 Query Store 來運用適當的計畫提示來緩解情況,以強制執行先前的計畫,或可以聯絡 Microsoft 客戶支援來協助解決問題,以提供解決方法或 hotfix。 當所有問題減少時,升級可以繼續。 客戶應該將這項功能整合到 2016 SQL Server規劃中。

下表說明追蹤標號 4199 從 2016 開始SQL Server模型。

設定

SQL相容性等級

追蹤標號 4199

2016 RTM 之前優化SQL Server修補程式

2016 RTM SQL Server優化程式 Hotfix

1.

120

關閉

禁用

禁用

2.

120

已上

已啟用

禁用

3.

130

關閉

相容等級啟用

禁用

4.

130

已上

相容等級啟用

相容等級啟用

注意:新升級至 2016 SQL Server 3。

針對 2016 年 2016 SQL Server的主要版本,Microsoft 計畫繼續使用此維護模型來優化 hotfixes。 根據預設,或每個發行版本本,下一個相容性等級中將會啟用上一版本的任何追蹤標標 4199 hotfix。 這表示客戶在遷移到最新相容性等級後的建議狀態為停用追蹤標號 4199。 之後,修復程式會使用追蹤標號 4199,為必須啟用應用程式中的這些特定修補程式的客戶啟用修正程式。 建議客戶在應用程式升級至最新相容性等級後停用追蹤標號 4199,以避免應用程式意外啟用未來未預期的優化器變更。 升級至最新相容性等級並移除追蹤標號 4199 仍然啟用所有工作負載在升級前所運用的修正,而非新的修正程式。

注意 雖然許多優化程式 Hotfix 在追蹤標號 4199 下啟用,但有些則使用其他追蹤標標。 追蹤標號 4199 歷來涵蓋廣泛適用的追蹤標號,且未來版本中預設可能會啟用。 替代的追蹤標標用於只有少數客戶所特有的條件、修正程式可能會導致其他類型的應用程式中的績效回歸,或內部功能在準備好為所有人啟用之前,可能會看到變更。 Microsoft 會視需要繼續使用其他追蹤標標來為產品提供服務。

附注 本文著重說明在最新產品的最新相容性等級上發行追蹤標號 4199 hotfix 的模型。 (發佈時,這是 2016.SQL Server 2016.) 優化程式修補程式可能會于 2016 年 1 月 120 SQL Server 的舊版 SQL Server 或較低相容性等級 () 發行SQL Server。 Microsoft 會評估每個案例,並決定是否使用追蹤標號 4199 或不同的追蹤標號。 由於非 hotfix 變更也會在移到更新的相容性層級時啟用,因此在升級期間,沒有明確承諾在具有或不含追蹤標號 4199 (期間不會發生任何計畫變更) 。 客戶應一直謹慎測試生產應用程式相容性等級的變更,並且應該使用緩解技術,例如 Query Store ,如果發生方案選擇相關的績效問題。

為參考,在引入追蹤標號 4199 之前,查詢處理器的 Hotfix 會使用下列追蹤標號:

4101, 4102, 4103, 4104, 4105, 4106, 4107, 4108, 4109, 4110, 4111, 4115, 4116, 4117, 4119, 4120, 4121, 4122, 4124, 4125, 4126, 4127, 4128, 4129, 4131, 4133, 4135.

SQL Server 2012 及更新版本

追蹤標號 4199 會包含在 2012 SQL Server版本的版本。

如何啟用追蹤標號 4199

您可以在啟動時或在使用者會話中啟用追蹤標號 4199。 此追蹤標號具有全域層級或工作階段層級效果。 若要啟用追蹤標號 4199,請使用 DBCC TRACEON 命令或使用 –T 4199 做為啟動參數。

如果使用 DBCC TRACEON\TRACEOFF,這不會為儲存的程式重新產生新的緩存計畫。 方案可能位在未建立追蹤標號的緩存中。

若要瞭解如何啟用或停用追蹤標標,以及全域和工作階段層級追蹤標標的說明,請參閱書籍線上版中的下列SQL Server主題:

參考

若要進一步瞭解更新的命名架構SQL Server,請按一下下列文章編號以在 Microsoft 知識庫中查看文章:

822499
適用于軟體更新套件Microsoft SQL Server命名架構
若要進一步瞭解軟體更新術語,請按一下下列文章編號以在 Microsoft 知識庫中查看文章:

824684
用來描述 Microsoft 軟體更新的標準術語描述

Need more help?

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

Was this information helpful?

How satisfied are you with the translation quality?
What affected your experience?

Thank you for your feedback!

×