使用index_stats檢視檢視索引效率

we6100發表於2015-11-10
使用INDEX_STATS檢視索引使用空間的效率,如果表(和索引)資料進行多次的刪除操作,那麼大的索引隨著時間的推移有變得不平衡的趨勢。
注意,只有使用過ANALYZE後,才會對INDEX_STATS進行填充
SQL> ANALZE index hr.emp_name_ix VALIDATE STRUCTURE;
注意:index_stats只儲存最近一次分析的結果

1.HEIGHT
此列指明BTREE索引的高度,通過為1,2,3層,如果有大量的資料插入使HEIGHT變成4或更多,則要重建索引,使BTREE扁平化。
2. DEL_LF_ROWS
此列表示由於行的刪除而被刪除的葉節點的數量。Oracle不會自動重建索引,因此,太多的被刪除的葉節點可能導致BTREE不平衡。
3.BLKS_GETS_PER_ACCESS
檢索資料要花費的I/O數,如果該列為兩位數,則要考慮重建索引。

select name,height, del_lf_rows, lf_rows,blks_gets_per_access, round((del_lf_rows/(lf_rows+0.0000000001))*100) "Frag Percent" from index_stats
當height大於4,blks_gets_per_access大於10或者Frag Percent大於10%的時候,就需要考慮對索引重建

alter index 使用者名稱.索引名 rebuild  tablespace 表空間名  storage(initial 初始值 next 擴充套件值)  nologging

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

相關文章