程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> 關於Oracle數據庫 >> 在Oracle 10g中如何獲得索引建議

在Oracle 10g中如何獲得索引建議

編輯:關於Oracle數據庫

       racle 10g的最優秀功能之一是顧問框架(Advisory Framework),它是一個優化顧問集合,可幫助您充分利用數據庫。其中的一個顧問——SQL訪問顧問(Access Advisor)——建議對模式中的索引和物化視圖進行改變來提高性能。

      但是,由於顧問框架(Advisory Framework)被一般化,以支持各種不同的顧問,因此導航DBMS_ADVISOR包中的所有存儲過程和函數會十分繁瑣。一個CREATE_TASK過程初始化一個新的優化任務,一個SET_TASK_PARAMETER過程修改默認的參數,CTEATE_SQLWKLD過程則建立一個負載對象等等。

      Oracle 10g第二版在DBMS_ADVISOR包中增加了一個QUITE_TUNE過程。這個過程默認所需要的大多數參數來建立一個顧問,對界面進行調整。除建立一個負載對象(即進行優化的QSL語句表)外,它還直接向過程提交一個單獨的SQL語句。

      要使用QUITE_TUNE過程——或DBMS_ADVISOR包中的任何其它工具——用戶必須具有顧問權限。另外,進行分析的用戶必須對查詢中引用的表至少擁有選擇許可。然後,只要簡單地調用過程就行。如列表A所示。

      您可以在各種DBA_視圖中查看運行結果。DBA_ADIVSOR_LOG列出您進行的任務和它生成建議的數目。然後可在DBA_ADVISOR_RECOMMENDATIONS視圖中看到這些建議,單個的命令可在DBA_ADVISOR_ACTIONS視圖中找到。

      而且,您還可以讓DBMS_ADVISOR生成執行建議行為所需的完整SQL腳本。GET_TASK_SCRIPT函數返回一個包含腳本的SLOB。

      列表B顯示了列表A的運行結果。因為WHERE子句使用的AMOUNT_SOLD欄沒有編入索引,需要進行全面表掃描來處理這個語句。此外,它暗示這是一個位圖索引,因為欄中的數據有許多重復的值。

    1. 上一頁:
    2. 下一頁:
    Copyright © 程式師世界 All Rights Reserved