萬盛學電腦網

 萬盛學電腦網 >> 數據庫 >> oracle教程 >> 在Oracle 10g中如何獲得索引建議

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

   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欄沒有編入索引,需要進行全面表掃描來處理這個語句。此外,它暗示這是一個位圖索引,因為欄中的數據有許多重復的值。

copyright © 萬盛學電腦網 all rights reserved