http://www.oracle.com/technology/global/cn/obe/11gr1_db/manage/sqlaccadv/sqlaccadv.htm
利用 SQL Access Advisor 改進模式設計
本教程將向您說明如何使用 SQL Access Advisor 改進模式設計。
大約 40 分鐘
本教程包括下列主題:
將鼠標置于此圖標上可以加載和查看本教程的所有屏幕截圖。 (警告:因為此操作會同時加載所有屏幕截圖,所以網速較慢時,響應時間可能會比較長。)
注:此外,您還可以在下列步驟中將鼠標放在每個單獨的圖標上,從而僅加載和查看與該步驟相關的屏幕截圖。可以通過單擊各個屏幕截圖來將其隱藏。
定義相應的訪問結構以優化 SQL 查詢始終是 Oracle DBA 要考慮的問題。因此,為解決這一問題,人們編寫了許多技術文章和腳本,還開發了不少高端工具。此外,隨著分區和物化視圖技術的發展,確定訪問結構變得愈加復雜。為解決這一非常重要的需求,Oracle 數據庫 10g 和 11g 引入了 SQL Access Advisor,從而改進了可管理性。
SQL Access Advisor 通過建議要創建、刪除或保留的索引、物化視圖、物化視圖日志或分區來確定并幫助解決與 SQL 語句執行相關的性能問題。它可以通過 Database Control 運行,也可以通過命令行使用 PL/SQL 過程運行。
返回主題列表
開始本教程之前,您應該:
1. |
安裝 Oracle 數據庫 11g。
|
2. |
下載 sqlaccadv.zip 文件并將其解壓縮到您的工作目錄(即 wkdir),然后導航到您的工作目錄。
|
返回主題列表
SQL Access Advisor 將實際負載作為輸入,Advisor 也可以通過模式獲得假定的負載。然后,它會建議可提供更快執行路徑的訪問結構。它具有以下優點:
- 無需掌握專業知識。
- 根據實際駐留在基于成本的優化器中的規則做決定。
- 與優化器和 Oracle 數據庫增強同步。
- 是一個涵蓋 SQL 訪問方法各個方面的單一顧問程序。
- 提供簡單、用戶友好的 GUI 向導。
- 生成腳本來實施建議。
下面的例子說明了 SQL Access Advisor 可以提供的建議的類型。該例子還使用 SQL Performance Analyzer 證明 SQL Access Advisor 提供的建議很好。
執行以下步驟,了解 SQL Access Advisor 的用法:
1. |
在以 oracle 用戶身份連接的終端會話中,執行 sqlaccessadv_setup.sh 腳本。該腳本將生成本 OBE 中使用的所有必需的數據。尤其是,它將生成用于表示要分析的負載的 SQL 調整工具集。
./sqlaccessadv_setup.sh

|
2. |
以 sh用戶身份(口令 sh)連接到 Enterprise Manager Database Control。進入 Home 頁面后,單擊 Related Links 部分中的 Advisor Central 鏈接。


|
3. |
在 Advisor Central 頁面中,單擊 SQL Advisors 鏈接。然后在 SQL Advisors 頁面中,單擊 SQL Access Advisor 鏈接。


|
4. |
在 Initial Options 頁面中,選擇 Inherit Options from a previously saved Task or Template,然后選擇 SQLACCESS_WAREHOUSE 模板。完成以上操作后,單擊 Continue。

|
5. |
在 Workload Source 頁面中,選擇 Use an existing SQL Tuning Set 并在 SQL Tuning Set 域中輸入 SH.SQLSET_MY_SQLACCESS_WORKLOAD。該 SQL 調整工具集是以前生成的。它表示您要分析的倉庫負載。完成以上操作后,單擊 Continue。

|
6. |
在 Recommendation Options 頁面中,確保已選擇所有可能的訪問結構并選擇了 Comprehensive。完成以上操作后,單擊 Continue。

|
7. |
在 Schedule 頁面的 Task Name 域中輸入 MY_SQLACCESS_TASK。從提供的列表中選擇第一個時區(單擊火炬圖標)。完成以上操作后,單擊 Continue。

|
8. |
在 Review 頁面中,單擊 Submit。

|
9. |
返回 Advisor Central 頁面,單擊 Refresh。完成以上操作后,單擊 Results 表中的 MY_SQLACCESS_TASK 鏈接。該任務應處于 COMPLETED 狀態。


|
10. |
這將轉至 Results 頁面。通過該頁面,您可以看到針對該負載實施 SQL Access Advisor 建議的潛在好處。單擊 Recommendation 子選項卡。

|
11. |
在 Recommendations 子頁面中,您可以查看建議的高級概述。基本上,會為該負載生成所有可能的建議類型。確保已選擇所有建議,單擊 Recommendation Details 按鈕。這將轉至 Details 頁面,您可以在其中看到有關每個建議的更多詳細信息,以及該負載中受這些建議影響的相應 SQL 語句。單擊 OK。



|
12. |
返回 Recommendations 子頁面,單擊 Schedule Implementation 按鈕。

|
13. |
在 Schedule Implementation 頁面中,顯示一個警告,表明該向導不會嘗試實施其建議,因為某些建議是非常重要的更改,應由管理員認真查看。因此,單擊 Show SQL 按鈕查看您可以用來實施所有建議的腳本。事實上,您已經創建了該腳本并將在本 OBE 的稍后部分使用。查看了該腳本之后,單擊 Done。返回 Schedule Implementation 頁面,單擊 Cancel。



|
14. |
單擊右上角的 Database 選項卡,然后單擊 Software and Support 選項卡。進入 Software and Support 頁面后,單擊 SQL Performance Analyzer 鏈接。您現在希望證明實施建議是有益處的。

|
15. |
在 SQL Performance Analyzer 頁面中,單擊 Guided Workflow 鏈接。

|
16. |
在 Guided Workflow 頁面中,單擊與第 1 步對應的行上的 Execute 圖標。在 Create SQL Performance Analyzer Task 中,在 SQL Performance Analyzer Task 的 Name 域中輸入 MY_SPA_TASK。然后,在 SQL 調整工具集的 Name 域中輸入 SH.SQLSET_MY_SQLACCESS_WORKLOAD。完成以上操作后,單擊 Create。


|
17. |
返回 Guided Workflow 頁面,單擊第 2 步的 Execute 圖標。在 Create Replay Trial 頁面的 Replay Trial Name 域中輸入 MY_SQL_REPLAY_BEFORE,確保選中 Trial environment established 復選框。然后,單擊 Submit。


|
18. |
在終端會話中,在 SQL*Plus 下以 sh用戶身份(口令 sh)連接。在 SQL*Plus 會話中,執行 implement.sql 腳本。該腳本是與 SQL Access Advisor 會話先前生成的建議對應的預創建腳本。
@implement.sql

|
19. |
返回 Guided Workflow Enterprise Manager 頁面,單擊與第 3 步相對應的 Execute 圖標。在 Create Replay Trial 頁面的 Replay Trial Name 域中輸入 MY_SQL_REPLAY_AFTER。確保已選中 Trial environment established 復選框,然后單擊 Submit。


|
20. |
返回 Guided Workflow Enterprise Manager 頁面,單擊與第 4 步對應的 Execute 圖標。在 Run Replay Trial Comparison 頁面中,確保創建一個 MY_SQL_REPLAY_BEFORE 和 MY_SQL_REPLAY_AFTER 之間的比較。單擊 Submit。


|
21. |
返回 Guided Workflow Enterprise Manager 頁面,單擊與第 5 步對應的 Execute 圖標。在 SQL Performance Analyzer Task Result 頁面上,您可以清楚地看到第二次試用較第一次快得多。



|
返回主題列表
在本教程中,您學習了如何使用 SQL Access Advisor。