共用方式為


資料庫引擎調整顧問

Microsoft Database Engine Tuning Advisor (DTA) 會分析資料庫,並提供可用來優化查詢效能的建議。 您可以使用 Database Engine Tuning Advisor 來選取和建立一組最佳的索引、索引檢視或數據表數據分割,而不需要專家了解資料庫結構或 SQL Server 內部。 使用 DTA,您可以執行下列工作。

  • 針對特定問題查詢的效能進行故障排除分析

  • 跨一或多個資料庫調整一組大型查詢

  • 執行可能的實體設計變更的假設情境分析

  • 管理儲存空間

Database Engine 調校顧問 優點

優化查詢效能可能會很困難,而不需要完全了解資料庫結構和針對資料庫執行的查詢。 Database Engine Tuning Advisor 可以藉由分析目前的查詢計劃快取,或分析您所建立的 Transact-SQL 查詢工作負載並建議適當的實體設計,來簡化這項工作。 對於更進階的資料庫管理員,DTA 會公開強大的機制,以執行不同實體設計替代方案的探勘假設分析。 DTA 可以提供下列資訊。

  • 使用查詢優化器分析工作負載中的查詢,以推薦資料庫的索引最佳組合。

  • 針對工作負載中所參考的資料庫,建議對齊或未對齊的數據分割。

  • 針對工作負載中參考的資料庫,建議使用索引檢視表。

  • 分析建議變更的效果,包括索引使用量、數據表之間的查詢分佈,以及工作負載中的查詢效能。

  • 建議微調資料庫的方法,以優化一小組問題查詢。

  • 您可以指定進階選項,例如磁碟空間條件約束,以自定義建議。

  • 提供摘要說明實作指定工作負載建議之效果的報告。

Database Engine Tuning Advisor 的設計目的是要處理下列類型的查詢工作負載。

  • 僅限在線事務處理 (OLTP) 查詢

  • 僅限在線分析處理 (OLAP) 查詢

  • 混合 OLTP 和 OLAP 查詢

  • 大量查詢工作負載(比數據修改更多的查詢)

  • 更新密集型的處理任務(數據修改操作比查詢更多)

DTA 元件和概念

Database Engine Tuning Advisor 圖形用戶介面
易於使用的介面,您可以在其中指定工作負載,並選取各種微調選項。

dta 效用
Database Engine Tuning Advisor 的命令提示字元版本。 dta 公用程式的設計,是為了讓您在應用程式和指令碼中使用 Database Engine Tuning Advisor 功能。

工作量
Transact-SQL 腳本檔案、追蹤檔案或追蹤數據表,其中包含您想要微調之資料庫的代表性工作負載。 從 SQL Server 2012 開始,您可以將計劃快取指定為工作負載。

XML 輸入檔
Database Engine Tuning Advisor 可用來微調工作負載的 XML 格式檔案。 XML 輸入檔支援 GUI 或 dta 公用程式中無法使用的進階微調選項。

限制與制約

Database Engine Tuning Advisor 具有下列限制與限制條件。

  • 它無法增加或刪除強制執行 PRIMARY KEY 或 UNIQUE 限制的唯一索引或索引。

  • 它無法分析設定為單一使用者模式的資料庫。

  • 如果您為超過實際可用空間的微調建議指定最大磁碟空間,Database Engine Tuning Advisor 會使用您指定的值。 不過,當您執行建議腳本來實作它時,如果未先新增更多磁碟空間,腳本可能會失敗。 您可以使用 dta 公用程式的 -B 選項來指定磁碟空間上限,或在 [進階微調選項] 對話框中輸入值來指定。

  • 基於安全性考慮,Database Engine Tuning Advisor 無法微調位於遠端伺服器上的追蹤數據表中的工作負載。 若要解決這項限制,您可以使用追蹤檔案,而不是追蹤數據表,或將追蹤數據表複製到遠端伺服器。

  • 當您施加限制,例如指定微調建議的最大磁碟空間(藉由使用-B 選項或 進階微調選項 對話方塊),Database Engine Tuning Advisor 可能會被迫刪除某些現有的索引。 在此情況下,產生的 Database Engine Tuning Advisor 建議可能會產生負面的預期改善。

  • 當您指定用來限制微調時間的限制式時(使用 -A 選項搭配 dta 公用程式,或在 [微調選項] 索引標籤上勾選 [限制微調時間] 時,資料庫引擎微調顧問可能會超過該時間限制,以產生精確的預期改善,以及到目前為止已處理工作負載部分的分析報告。

  • Database Engine Tuning Advisor 在下列情況下可能不會提出建議:

    1. 要微調的數據表包含少於10個數據頁。

    2. 建議的索引無法在目前的實體資料庫設計上提供足夠的查詢效能改善。

    3. 執行 Database Engine Tuning Advisor 的使用者不是db_owner資料庫角色或sysadmin固定伺服器角色的成員。 工作負載中的查詢會在執行 Database Engine Tuning Advisor 的使用者的安全性環境中進行分析。 用戶必須是資料庫角色的成員 db_owner

  • Database Engine Tuning Advisor 會將微調會話數據和其他資訊儲存在 msdb 資料庫中。 如果對資料庫進行 msdb 變更,您可能會有遺失微調會話數據的風險。 若要消除此風險,請為資料庫實作 msdb 適當的備份策略。

效能考量

Database Engine Tuning Advisor 可以在分析期間耗用大量的處理器和記憶體資源。 若要避免降低生產伺服器的速度,請遵循下列其中一個策略:

  • 在伺服器可用時調整您的資料庫。 Database Engine Tuning Advisor 可能會影響維護工作效能。

  • 使用測試伺服器/生產伺服器功能。 如需詳細資訊,請參閱 減少生產伺服器微調負載

  • 只指定您想要 Database Engine Tuning Advisor 分析的實體資料庫設計結構。 Database Engine Tuning Advisor 提供許多選項,但只指定必要選項。

相依於xp_msver擴充預存程式

Database Engine Tuning Advisor 依賴 xp_msver 擴充預存程式,以提供完整功能。 預設啟用此擴展的儲存程序。 Database Engine Tuning Advisor 會使用此擴充預存程式來擷取您微調資料庫所在計算機上的處理器數目和可用記憶體。 如果 xp_msver 無法使用,Database Engine Tuning Advisor 會假設 Database Engine Tuning Advisor 執行所在的計算機的硬體特性。 如果 Database Engine Tuning Advisor 執行所在的電腦的硬體特性無法使用,則會假設有一個處理器和 1024 MB 的記憶體。

此相依性會影響分割建議,因為建議的數據分割數目取決於這兩個值(處理器數目和可用的記憶體)。 當您使用測試伺服器來微調生產伺服器時,相依性也會影響微調結果。 在此案例中,Database Engine Tuning Advisor 會使用 xp_msver ,從實際執行伺服器擷取硬體屬性。 微調測試伺服器上的工作負載之後,Database Engine Tuning Advisor 會使用這些硬體屬性來產生建議。 如需詳細資訊,請參閱 xp_msver (Transact-SQL)

Database Engine Tuning Advisor 活動

下表列出常見的 Database Engine Tuning Advisor 工作,以及描述如何執行這些工作的主題。

資料庫引擎調整顧問任務 主題
初始化並啟動Database Engine Tuning Advisor。

藉由指定計劃快取、建立腳本或產生追蹤檔案或追蹤數據表,建立工作負載。

使用 Database Engine Tuning Advisor 圖形使用者介面工具調整資料庫。

建立 XML 輸入檔案以微調工作負載。

檢視 Database Engine Tuning Advisor 使用者介面選項的描述。
啟動及使用資料庫引擎調整顧問
檢視資料庫微調作業的結果。

選取並實作微調建議。

針對工作負載執行假設狀況探勘分析。

檢閱現有的微調會話,根據現有的會話複製會話
或編輯現有的微調建議,以進一步評估或實作。

檢視 Database Engine Tuning Advisor 使用者介面選項的描述。
檢視及處理 Database Engine Tuning Advisor 的輸出