使用 Database Engine Tuning Advisor 探勘分析

資料庫管理員可以使用 Database Engine Tuning Advisor 執行探勘分析。探勘分析涉及到搭配使用手動微調和工具輔助微調。若要使用 Database Engine Tuning Advisor 執行探勘分析,請利用使用者指定的組態功能。使用者指定的組態功能可讓您指定微調現有和假設性實體設計結構的組態 (例如索引、索引檢視及資料分割)。指定假設結構的好處是您可以評估在資料庫上產生的效果,不用先實作而帶來負擔。

雖然 Database Engine Tuning Advisor 圖形化使用者介面 (GUI) 和 dta 命令列公用程式都支援探勘分析,但 dta 提供更大的彈性,因為可以使用 XML 輸入檔。此 XML 輸入檔使用 Database Engine Tuning Advisor XML 結構描述,您可以到 Database Engine Tuning Advisor Schema 下載這個已發行的結構描述。

導覽至此 URL 之後,請向下捲動資料表資料列,直到找到 Database Engine Tuning Advisor Schema 的連結為止。此結構描述的確切 URL 在相鄰的資料行中。此 XML 結構描述支援指定分析在隔離中評估的假設組態,或相對於目前組態來評估的假設組態。相較之下,Database Engine Tuning Advisor 圖形化使用者介面僅完整支援評估 Database Engine Tuning Advisor 所產生建議的結構子集。

探勘分析的兩種模式

Database Engine Tuning Advisor 可以在下列兩種模式中執行探勘分析:

  • 評估模式

    在評估模式中,Database Engine Tuning Advisor 會以相同的工作負載,將目前組態的成本 (C) 與使用者指定組態的成本 (U) 做比較。C 一定是實際的組態,因為是由資料庫中現存的實體設計結構所組成。相較之下,U 是由實際和假設實體設計結構所組成的組態。如果 Database Engine Tuning Advisor 報告 U 的成本低於 C 的成本,則 U 的實體設計執行效能很可能優於 C。

    例如,評估模式在下列情況很有用:

    • 管理員想要判斷將非叢集索引加入資料表的效能影響。

    • 管理員剛使用 Database Engine Tuning Advisor 完成資料庫微調並收到了建議 (R)。看過 R 之後,管理員想要修改 R 來進行微調。例如,管理員想要加入兩個非叢集索引並刪除 R 之中的一個非叢集索引。修改 R 之後,管理員將已修改的建議用做 Database Engine Tuning Advisor 的輸入,並再次微調來測量修改對效能的影響。

  • 微調模式

    在微調模式中,資料庫管理員已經知道資料庫實體設計的一部分應該固定不變,但對於其餘組態,則希望由 Database Engine Tuning Advisor 建議最佳的實體設計結構。

    例如,微調模式在下列情況很有用:

    • 資料庫管理員知道事實資料表太大,必須分割。管理員必須選擇按照月份或季節來分割。兩種方式都可以分割資料表,但管理員希望選擇的資料分割方法在一定的工作負載下可以提供最佳效能。為了決定最佳的資料分割方法,管理員可以使用 Database Engine Tuning Advisor 來微調工作負載兩次。首先,管理員利用使用者指定的組態,並搭配按照月份來假設分割的資料表,進行工作負載的微調。然後,管理員再使用按照季節來假設分割的資料表,微調工作負載。在使用兩種假設組態來微調工作負載之後,管理員可以比較效能改進的百分比,決定哪一種資料分割方法可以提供最高效能。

    • Orders 資料表在 ship_date 資料行必須具有叢集索引。資料庫管理員想要為 Orders 資料表決定一組最佳的非叢集索引。資料庫管理員可以採用使用者指定的組態來局部修正實體資料庫設計 (此組態在 Orders 資料表的 ship_date 資料行具有叢集索引)。然後,管理員可以在微調模式中使用 Database Engine Tuning Advisor,判斷使用者指定的組態產生的效能影響。

關於比較特定工作負載的兩個組態

常見的狀況是針對一個特定工作負載來比較兩個不同的組態。例如,Database Engine Tuning Advisor 建議了特定的組態,而管理員想要瞭解如果改用稍微不同的組態,將產生什麼影響。若要使用相同的工作負載來比較新的組態和原始組態,必須使用 dta 命令列公用程式,而不要用圖形化使用者介面,因為命令列公用程式可讓您指定 Database Engine Tuning Advisor 應該微調多少個工作負載事件 (使用 -n 選項)。如果您指定 Database Engine Tuning Advisor 應該為每一種組態微調相同數目的事件,則可以確定兩個微調工作階段是相當的,因此可以做比較。這很重要,因為 Database Engine Tuning Advisor 可能無法在指定的時間內微調整個工作負載。如需詳細資訊,請參閱<dta 公用程式>和<如何:使用 dta 公用程式微調資料庫>。

使用者指定組態的使用考量

請注意下列事項:

  • 使用者指定的組態可能由下列實體設計物件組成:索引、索引檢視、索引和索引檢視的資料分割、統計資料。

  • 您可以使用 Database Engine Tuning Advisor GUI,將使用者指定的組態匯入到微調工作階段中。若要匯入組態,請在 [檔案] 功能表上按一下 [匯入工作階段定義]

  • 您也可以利用 Database Engine Tuning Advisor GUI,從其中一個建議選取索引子集,並使用這個選取的建議組態,啟動新的工作階段來進行評估。

使用者指定的組態限制

使用者指定的組態有下列限制:

  • 組態規格應該符合 Database Engine Tuning Advisor XML 結構描述 DTAschema.xsd,您可以在這個 Microsoft 網站 (英文) 找到此檔案。

  • 此組態不能指定將現有的索引或索引檢視表加入資料庫中。

  • 組態應該不能包含無法建立索引的任何檢視。

  • 組態應該不能嘗試卸除不存在的索引或強制執行條件約束的索引 (例如,唯一或主索引鍵條件約束)。

  • 組態不能建立及卸除相同的索引。例如,您不能在資料表 T 上建立索引 I,然後又將它卸除。您也不能執行相反的程序:卸除資料表 T 上的索引 I,然後重新建立該索引。