SQL Server 2008 數據庫引擎優(yōu)化顧問介紹
1 數據庫引擎優(yōu)化顧問概述
借助 Microsoft SQL Server 數據庫引擎優(yōu)化顧問,您不必精通數據庫結構或深諳 Microsoft SQL Server,即可選擇和創(chuàng)建索引、索引視圖和分區(qū)的最佳集合。
數據庫引擎優(yōu)化顧問分析一個或多個數據庫的工作負荷和物理實現。工作負荷是對要優(yōu)化的一個或多個數據庫執(zhí)行的一組 Transact-SQL 語句。在優(yōu)化數據庫時,數據庫引擎優(yōu)化顧問將使用跟蹤文件、跟蹤表或 Transact-SQL 腳本作為工作負荷輸入??梢栽?SQL Server Management Studio 中使用查詢編輯器創(chuàng)建 Transact-SQL 腳本工作負荷。可以通過使用 SQL Server Profiler 中的優(yōu)化模板來創(chuàng)建跟蹤文件和跟蹤表工作負荷。有關使用 SQL Server Profiler 創(chuàng)建可用作工作負荷的跟蹤的信息,請參閱SQL Server Profiler 簡介。
對工作負荷進行分析后,數據庫引擎優(yōu)化顧問會建議您添加、刪除、或修改數據庫中的物理設計結構。此顧問還可針對應收集哪些統(tǒng)計信息來備份物理設計結構提出建議。物理設計結構包括聚集索引、非聚集索引、索引視圖和分區(qū)。數據庫引擎優(yōu)化顧問會推薦一組物理設計結構,以降低工作負荷的開銷(由查詢優(yōu)化器估計)。 數據庫引擎優(yōu)化顧問的優(yōu)化功能
數據庫引擎優(yōu)化顧問具備下列功能:
* 通過使用查詢優(yōu)化器分析工作負荷中的查詢,推薦數據庫的最佳索引組合。 * 為工作負荷中引用的數據庫推薦對齊分區(qū)或非對齊分區(qū)。 * 推薦工作負荷中引用的數據庫的索引視圖。 * 分析所建議的更改將會產生的影響,包括索引的使用,查詢在表之間的分布,以及查詢在工作負荷中的性能。 * 推薦為執(zhí)行一個小型的問題查詢集而對數據庫進行優(yōu)化的方法。 * 允許通過指定磁盤空間約束等高級選項對推薦進行自定義。 * 提供對所給工作負荷的建議執(zhí)行效果的匯總報告。 * 考慮備選方案,即:您以假定配置的形式提供可能的設計結構方案,供數據庫引擎優(yōu)化顧問進行評估。
2 數據庫引擎優(yōu)化顧問功能 據庫引擎優(yōu)化顧問提供了一些新功能。通過這些新功能,無論是初學者還是有經驗的數據庫管理員都能對數據庫進行優(yōu)化,以獲得更好的查詢性能。以下各部分列出了數據庫引擎優(yōu)化顧問的新功能,并進行了說明: 工作負荷分析功能得到改進
* 處理引用瞬態(tài)表(如臨時表)的批。 * 不會因為它不能分析某事件而終止優(yōu)化,而是將該事件記錄到優(yōu)化日志中,再繼續(xù)優(yōu)化其他事件。 * 分析和優(yōu)化引用用戶定義函數的查詢。 * 處理跟蹤中的所有 USE 語句,這些語句在優(yōu)化多個數據庫時必不可少。 * 使用工作負荷中的 LoginName 列(如果跟蹤工作負荷過程中有此列),以便在執(zhí)行事件的用戶的環(huán)境中正確優(yōu)化該事件。 * 優(yōu)化觸發(fā)器中的語句。
可伸縮性增強
* 使用工作負荷壓縮,讓數據庫引擎優(yōu)化顧問既可縮短優(yōu)化所需的時間,又能生成高質量的優(yōu)化建議結果。 * 使用算法以避免生成重復的統(tǒng)計信息,從而減少優(yōu)化期間發(fā)生的 I/O 數量。
優(yōu)化集成
數據庫引擎優(yōu)化顧問可以權衡包括篩選索引在內的各種不同類型的物理設計結構(如索引、索引視圖、分區(qū))所提供的性能。不同結構可以在功能上有所重疊,以減少執(zhí)行任何給定查詢時的開銷,從而可以考慮對多個設計結構進行集成配置,使數據庫引擎優(yōu)化顧問能夠提供質量更高的建議。例如,如果僅考慮對一組表的聚集索引,再考慮對同一組表的水平范圍分區(qū),這并不能提供這兩種物理結構配合使用時的工作情況。若要了解這兩種結構配合使用的情況,優(yōu)化工具必須執(zhí)行集成優(yōu)化。 優(yōu)化多個數據庫
應用程序經常要訪問多個數據庫以完成工作,因此,工作負荷會頻繁引用多個數據庫中的對象。與 Microsoft SQL Server 2000 中的索引優(yōu)化向導不同,數據庫引擎優(yōu)化顧問可以同時優(yōu)化多個數據庫。用戶可以指定一組要優(yōu)化的數據庫,而數據庫引擎優(yōu)化顧問會為所有選定數據庫提出建議。有關此功能的詳細信息,請參閱優(yōu)化多個數據庫。 將優(yōu)化開銷分攤給測試服務器
優(yōu)化較大的工作負荷會對所優(yōu)化的服務器產生很大的開銷。這是因為在優(yōu)化過程中,數據庫引擎優(yōu)化顧問通常需要多次調用查詢優(yōu)化器。除了生產服務器之外,還可以使用測試服務器來消除此問題。
在這種情況下,您將優(yōu)化一個測試服務器。測試服務器具備與生產服務器相同的環(huán)境。收到優(yōu)化測試服務器而產生的數據庫設計配置建議后,可以在維護期間將該建議應用于生產服務器。
使用測試服務器的傳統(tǒng)方法,是將生產服務器的所有數據復制到測試服務器,再優(yōu)化測試服務器,然后針對兩臺計算機的硬件差異調整產生的建議。數據庫引擎優(yōu)化顧問無需將數據復制到測試計算機,也無需兩臺計算機的硬件相同,就能利用測試服務器,從而節(jié)省了時間和資源。數據庫引擎優(yōu)化顧問只將元數據、統(tǒng)計信息和硬件參數從生產服務器導入測試服務器。然后,數據庫引擎優(yōu)化顧問對測試服務器執(zhí)行大容量優(yōu)化操作,而您可以在正常維護時將優(yōu)化結果應用于生產服務器。有關此功能的詳細信息,請參閱減輕生產服務器優(yōu)化負荷。 命令提示實用工具和圖形用戶界面工具
數據庫引擎優(yōu)化顧問提供以下兩種用戶界面:
* dta 命令提示實用工具,可以通過編寫腳本輕松組合數據庫引擎優(yōu)化顧問的功能。 * 數據庫引擎優(yōu)化顧問圖形用戶界面 (GUI) 工具,可以輕松查看優(yōu)化會話和結果。
僅刪除優(yōu)化
數據庫中的物理設計結構會隨時間積累,數據庫管理員需要一種刪除無用結構的方法。使用僅刪除優(yōu)化選項,可以確定那些不再使用,或對給定工作負荷用處甚少的現有物理設計結構。在使用 dta 命令提示實用工具時,可以使用 –fx 參數來指定此優(yōu)化選項。如果使用的是 GUI,則可以在“優(yōu)化選項”選項卡中選中“僅評估現有 PDS 的使用率”,以指定此選項。
如果選擇此選項,數據庫引擎優(yōu)化顧問將永不建議任何新結構。因此,此選項不能與添加索引、索引視圖或分區(qū)的其他選項一起使用。僅刪除優(yōu)化選項也不能與保存全部現有結構的選項一起使用。有關可用于數據庫引擎優(yōu)化顧問的優(yōu)化選項的詳細信息,請參閱可用的優(yōu)化選項。 XML 支持
可以在數據庫引擎優(yōu)化顧問 XML 輸入文件中,定義可使用數據庫引擎優(yōu)化顧問 GUI 以及 dta 命令提示實用工具執(zhí)行的所有優(yōu)化操作。XML 輸入文件使用已發(fā)布的數據庫引擎優(yōu)化顧問 XML 架構,該架構可以在 Microsoft SQL Server 安裝目錄的以下位置中找到:
C:Program FilesMicrosoft SQL Server100ToolsBinnschemassqlserver20047dtadtaschema.xsd
您還可以從 Microsoft 網站上的數據庫引擎優(yōu)化顧問架構下載該架構。
通過使用 XML 輸入文件,您可以在優(yōu)化數據庫時使用常用的 XML 工具,有經驗的數據庫管理員可以有更大的靈活性。例如,使用 XML 輸入文件,您可以指定現有的和假設的物理設計結構(索引、索引視圖、分區(qū))的配置,然后,可以按應用了此配置的情況,使用 dta 命令提示實用工具優(yōu)化數據庫。這可以實現假設分析,又不會在優(yōu)化前產生實施新配置的開銷。有關數據庫引擎優(yōu)化顧問 XML 支持的詳細信息,請參閱 XML 輸入文件引用(數據庫引擎優(yōu)化顧問)、使用 XML 輸入文件進行優(yōu)化和使用數據庫引擎優(yōu)化顧問進行探索性分析。 用戶指定的配置和假設分析支持
使用數據庫引擎優(yōu)化顧問,用戶可以提供物理設計結構(索引、索引視圖和分區(qū)策略)的假設配置作為優(yōu)化輸入。然后,可以按已經應用了該配置的情況,優(yōu)化一個或多個數據庫。這樣一來,您就可以在發(fā)生應用這些結構產生的開銷之前,對一組特定物理設計結構組作出假設分析。數據庫引擎優(yōu)化顧問 XML 架構完全支持此功能??梢栽?XML 輸入文件中指定希望處理的配置,然后使用 dta 命令提示實用工具啟動優(yōu)化會話。有關此功能的詳細信息,請參閱使用數據庫引擎優(yōu)化顧問進行探索性分析。 分析報告
優(yōu)化會話完成后,數據庫引擎優(yōu)化顧問將以文本格式或 XML 格式生成若干分析報告。這些報告提供的信息包括工作負荷中發(fā)生的查詢開銷、工作負荷中事件的發(fā)生頻率以及查詢及其引用的索引之間的關系等??梢允褂脭祿煲鎯?yōu)化顧問 GUI 查看報告,也可以使用常用的 XML 編輯器打開以 XML 格式生成的報告。有關數據庫引擎優(yōu)化顧問生成的分析報告的詳細信息,請參閱選擇數據庫引擎優(yōu)化顧問報告。 優(yōu)化會話
在開始分析前,數據庫引擎優(yōu)化顧問會提示您創(chuàng)建一個唯一的名稱或編號,來標識優(yōu)化會話。完成工作負荷分析或停止分析后,數據庫引擎優(yōu)化顧問將保存優(yōu)化會話信息,并將其與開始優(yōu)化前提供的標識符關聯(lián)起來。您可以使用會話標識符將現有會話重新載入數據庫引擎優(yōu)化顧問 GUI,在此可以查看優(yōu)化結果和報告。使用優(yōu)化會話可以輕松比較各個時間段的會話結果。有關使用優(yōu)化會話的詳細信息,請參閱使用會話監(jiān)視器評估優(yōu)化建議。 使用 dta 實用工具時才可用的功能
使用數據庫引擎優(yōu)化顧問 GUI 時,以下各部分中列出的優(yōu)化選項當前不可用。 在命令提示符下或使用 XML 輸入文件時
在命令提示符下運行 dta 實用工具時,或通過使用 -ix 命令提示符參數將 XML 輸入文件用于該實用工具時,您可以指定:
* 優(yōu)化日志名稱(-e 命令提示符參數,或 TableName 元素)。 * 要優(yōu)化的事件數(-n 命令提示符參數,或 NumberOfEvents 元素)。 * 由數據庫引擎優(yōu)化顧問推薦的索引中的最大鍵列數(-c 命令提示符參數,或 MaxKeyColumnsInIndex 元素)。 * 數據庫引擎優(yōu)化顧問對推薦的配置提出的最小改進(-m 命令提示符參數,或 MinPercentageImprovement 元素)。
使用 XML 輸入文件時
除了上述功能之外,在將 XML 輸入文件與 dta 實用工具一起使用時,還可以:
* 使用測試服務器/生產服務器方案,其中包括在測試服務器上創(chuàng)建 shell 數據庫(TestServer 元素)。 * 在 XML 輸入文件中指定工作負荷內聯(lián)(EventString 元素)。 * 忽略工作負荷中的常量(IgnoreConstantsInWorkload 元素)。
在命令提示符下
除了上述功能之外,在命令提示符下運行 dta 實用工具時,還可以:
* 指定靜默模式,實用工具在該模式下運行時不顯示任何反饋消息(-q 命令提示符參數)。 * 優(yōu)化并自動應用優(yōu)化建議(-a 命令提示符參數)。