analyze index 時validate structure和compute statisti

不一樣的天空w發表於2017-04-03
analyze index 時validate structure和compute statisti 2010-02-26 22:07:49
http://blog.chinaunix.net/uid-10089022-id-2970684.html

分類: Oracle

analyze index index1 validate structure:

analyze index index1 compute statistics:

在分析索引的時候,一般會用到以上二個命令,那麼這二個命令是用來幹什麼呢?

一:

analyze index index1 validate structure是用來分析索引的資料塊是否有壞塊,以及根據分析得到的資料(存放在index_stats)來判斷索引是否需要重新建立。

什麼樣的index需要rebuild?

當一個table經常進行DML操作時,它的索引會存在許多block空間的浪費,這是因為index block中的記錄只有在全部表示為不可用時, block 才能被加入到freelist中去被重新利用。所以我們需要尋找那些浪費空間很嚴重的index。

方法是: 1) analyze index index_name validate structure;

       2) select del_lf_blk_len/lf_blk_len from index_stats where name = :index_name;

       3) 如果結果大於20%, 那你的Index就可以被rebuild了。

validate structure有二中模式: online, offline, 預設是offline模式。以offline模式分析時, 會對表加一個4級別的鎖(表共享),對run系統可能造成一定的影響。

online模式則沒有表lock的影響,但當以online模式分析時, 在檢視index_stats沒有統計資訊。

注:analyze table/index validate structure會加DML級S鎖,因此可能會影響到正常的DML操作,如果該語句執行時間過長的話,後果會比較嚴重。

二:

analyze index index1 compute statistics:是用來統計index的分析資訊,來為CBO服務的。從9i開始,Oracle以建議使用dbms_stats package代替 analyze 了。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31397003/viewspace-2136524/,如需轉載,請註明出處,否則將追究法律責任。

相關文章