Share via


使用 Database Engine Tuning Advisor 的注意事項

在使用 Database Engine Tuning Advisor 前,應先瞭解哪些事項會影響其功能與效能。下列章節將描述這些注意事項,但這並非詳盡的問題清單。使用 Database Engine Tuning Advisor 時所必須考量的問題,取決於您特定的環境與 SQL Server 的實作。

Database Engine Tuning Advisor 功能

Database Engine Tuning Advisor 不會執行下列作業:

  • 建議系統資料表上的索引。

  • 加入或卸除唯一索引,或用於強制執行 PRIMARY KEY 或 UNIQUE 條件約束的索引。

  • 微調單一使用者資料庫。

[!附註]

若索引檢視是 Database Engine Tuning Advisor 的部分建議,Database Engine Tuning Advisor 就會在檢視上建議唯一的叢集索引。

此外,Database Engine Tuning Advisor 還具有下列限制:

  • Database Engine Tuning Advisor 會藉由資料取樣來蒐集統計資料。日後再以相同的工作負載重複執行此工具時,產生的結果可能會不同。

  • 在 MicrosoftSQL Server 7.0 或舊版的資料庫中,Database Engine Tuning Advisor 無法用來微調索引。

  • 若您為微調建議所指定的最大磁碟空間超過可用的空間,Database Engine Tuning Advisor 會使用您所指定的值。但是,當您執行建議指令碼來實作此項目時,若未先新增更多磁碟空間,指令碼就會失敗。最大磁碟空間可透過 dta 公用程式的 -B 選項來指定,或在 [進階微調選項] 對話方塊中輸入值而加以指定。

  • 基於安全性考量,Database Engine Tuning Advisor 無法對位於遠端伺服器中的追蹤資料表,微調其中的工作負載。若要解決這項限制問題,請選擇下列其中一項:

    • 不要使用追蹤資料表,改用追蹤檔案。

    • 將追蹤資料表複製到遠端伺服器上。

  • 當您使用條件約束 (例如您在使用 -B 選項或 [進階微調選項] 對話方塊指定微調建議的最大磁碟空間時,所加諸的條件約束) 時,可能會強制 Database Engine Tuning Advisor 卸除某些現有的索引。在這種情況下,所產生的 Database Engine Tuning Advisor 建議,可能會導致負面的預期改善。

  • 如果指定條件約束以限制微調時間 (使用 dta 公用程式的 -A 選項,或勾選 [微調選項] 索引標籤上的 [限制微調時間]),Database Engine Tuning Advisor 可能會超過時間限制,才能產生精確的預期改善,以及針對目前為止所耗用的工作負載部分產生分析報告。

Database Engine Tuning Advisor 在下列情況下可能不會進行建議:

  • 要微調的資料表,所含資料頁數小於 10 頁。

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

  • 執行 Database Engine Tuning Advisor 的使用者,不是 db_owner 資料庫角色或系統管理員 (sysadmin) 固定伺服器角色的成員。工作負載中的查詢,會在執行 Database Engine Tuning Advisor 之使用者的安全性內容中進行分析,因此,使用者必須是 db_owner 資料庫角色的成員。

Database Engine Tuning Advisor 在下列情況下,可能不會進行分割建議:

  • Xp_msver 擴充預存程序未啟用。此擴充預存程序可用來對要進行微調之資料庫所在的伺服器,提取其處理器數量與可用記憶體數。請注意,在您安裝 SQL Server 時,此擴充預存程序預設為開啟。如需詳細資訊,請參閱<了解介面區組態>和<xp_msver (Transact-SQL)>。

[!附註]

當 Database Engine Tuning Advisor 微調測試伺服器時,必須啟用 xp_msver 擴充預存程序,Database Engine Tuning Advisor 才能夠在微調期間從生產伺服器中提取資訊。如需詳細資訊,請參閱<使用測試伺服器的考量>。

效能考量

Database Engine Tuning Advisor 在進行分析時,將會耗用大量的處理器與記憶體資源。若要避免生產伺服器的速度減緩,請執行下列其中一個策略:

  • 趁伺服器空閒時再微調資料庫,因為 Database Engine Tuning Advisor 會影響維護工作的效能。

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

  • 只指定要讓 Database Engine Tuning Advisor 分析的實體資料庫設計結構。Database Engine Tuning Advisor 有許多選項,但只要指定必要的選項即可。

Database Engine Tuning Advisor 將工作階段資訊儲存在 msdb 資料庫中

Database Engine Tuning Advisor 會在 msdb 資料庫中儲存微調工作階段資料與其他資訊。修改 msdb 資料庫有遺失微調工作階段資料的風險。為降低此風險,請先備份 msdb 資料庫。