racle 10g的最優(yōu)秀功能之一是顧問框架(Advisory Framework),它是一個(gè)優(yōu)化顧問集合,可幫助您充分利用數(shù)據(jù)庫。其中的一個(gè)顧問——SQL訪問顧問(Access Advisor)——建議對(duì)模式中的索引和物化視圖進(jìn)行改變來提高性能。
但是,由于顧問框架(Advisory Framework)被一般化,以支持各種不同的顧問,因此導(dǎo)航DBMS_ADVISOR包中的所有存儲(chǔ)過程和函數(shù)會(huì)十分繁瑣。一個(gè)CREATE_TASK過程初始化一個(gè)新的優(yōu)化任務(wù),一個(gè)SET_TASK_PARAMETER過程修改默認(rèn)的參數(shù),CTEATE_SQLWKLD過程則建立一個(gè)負(fù)載對(duì)象等等。
Oracle 10g第二版在DBMS_ADVISOR包中增加了一個(gè)QUITE_TUNE過程。這個(gè)過程默認(rèn)所需要的大多數(shù)參數(shù)來建立一個(gè)顧問,對(duì)界面進(jìn)行調(diào)整。除建立一個(gè)負(fù)載對(duì)象(即進(jìn)行優(yōu)化的QSL語句表)外,它還直接向過程提交一個(gè)單獨(dú)的SQL語句。
要使用QUITE_TUNE過程——或DBMS_ADVISOR包中的任何其它工具——用戶必須具有顧問權(quán)限。另外,進(jìn)行分析的用戶必須對(duì)查詢中引用的表至少擁有選擇許可。然后,只要簡單地調(diào)用過程就行。如列表A所示。
您可以在各種DBA_視圖中查看運(yùn)行結(jié)果。DBA_ADIVSOR_LOG列出您進(jìn)行的任務(wù)和它生成建議的數(shù)目。然后可在DBA_ADVISOR_RECOMMENDATIONS視圖中看到這些建議,單個(gè)的命令可在DBA_ADVISOR_ACTIONS視圖中找到。
而且,您還可以讓DBMS_ADVISOR生成執(zhí)行建議行為所需的完整SQL腳本。GET_TASK_SCRIPT函數(shù)返回一個(gè)包含腳本的SLOB。
列表B顯示了列表A的運(yùn)行結(jié)果。因?yàn)閃HERE子句使用的AMOUNT_SOLD欄沒有編入索引,需要進(jìn)行全面表掃描來處理這個(gè)語句。此外,它暗示這是一個(gè)位圖索引,因?yàn)闄谥械臄?shù)據(jù)有許多重復(fù)的值。
更多信息請(qǐng)查看IT技術(shù)專欄