我們開始時向一個空的帶索引的表中插入大量數據后,是不會產生碎片問題的,但是,數據庫經過很長一段時間的增刪改查后,難免會出現碎片問題,影響數據庫的性能,Oracle對於這一問題有自己的解決方案。
下面介紹解決這一問題的方案:
首先要對索引進行分析:analyze index ind_1 validate structure; ind_1為你自己建立的索引
分析后查詢幾個主要的參數判斷是否需要整理碎片:select name,HEIGHT,PCT_USED,DEL_LF_ROWS/LF_ROWS from index_stats;
這里主要通過幾個標准來判斷是否需要整理碎片:
1.HEIGHT>=4
2.PCT_USED<50%
3.DEL_ROWS/LF_ROWS>0.2
如果查詢到的值符合以上三種情況的任意一種,就說明我們需要進行碎片整理工作了
碎片整理語句:alter index ind_1 rebuild [online] [tablespace name];
一般情況下都是要加上online參數的,不必加tablespace name。
以上就是對Oracle解決索引碎片功能的理解。