本文主要是介绍Oracle 使用analyze分析索引碎片,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1、先分析索引,语句如下:
analyze index index_name validate structure
然后查询 index_stats
select name, height, pct_used, del_lf_rows/lf_rows from index_stats;
DEL_LF_ROWS于LF_ROWS的比例 这是最基本的了
如果查询结果中:
Height > 4
PCT_USER < 50
del_lf_rows/lf_rows > 0.2
则说明索引需要重建。
可以通过程序来实现该功能
注意:analyze index 和查询index_stats 必须在同一个session中
create table MONITORINDEX
(INDEX_NAME VARCHAR2(50),DEL_LF_ROWS NUMBER,LF_ROWS NUMBER,RATE NUMBER(4,2),MONITORDATE DATE default sysdate not null
)
create or replace procedure analyzeindex isv_sql varchar2(100);
beginfor a in (select index_name from all_indexes where owner = USER) loopv_sql := ' analyze index ' || a.index_name || ' validate structure';execute immediate v_sql;insert into monitorindex(index_name, del_lf_rows, lf_rows, rate)select name,del_lf_rows,lf_rows,round(del_lf_rows * 100 / (lf_rows + del_lf_rows), 2)from index_stats;end loop;
end analyzeindex;
这篇关于Oracle 使用analyze分析索引碎片的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!