使用 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 資料庫。