Oracle 11g索引的碎片分析

  数据被删除之后,索引只是加了一个标记,并没有真正的删除,在11g之后,删除的索引在数据块中,下次插入数据或者删除数据时候会以数据块为单位清除。这样可以查看碎片率。

drop table test purge;

create table test as select * from dba_objects;
insert into test select * from test;
insert into test select * from test;
commit;
create index ind_t_object_id on test(object_id);
analyze index ind_t_object_id validate structure;


select s.height,
       round((del_lf_rows_len / lf_rows_len) * 100, 2) || '%' frag_ratio,
       s.pct_used
  from index_stats s
 where s.name = 'IND_T_OBJECT_ID';
    HEIGHT FRAG_RATIO      PCT_USED
---------- ------------- ----------
         3      0%              90
          
delete from test where object_type in('SYNONYM','JAVA CLASS');
commit;
analyze index ind_t_object_id validate structure;
select s.height,
       round((del_lf_rows_len / lf_rows_len) * 100, 2) || '%' frag_ratio,
       s.pct_used
  from index_stats s
 where s.name = 'IND_T_OBJECT_ID';
    HEIGHT FRAG_RATIO      PCT_USED
---------- ------------- ----------
         3 70.23%               90 
 
delete from test where object_type in('VIEW','INDEX','TABLE','TYPE');
commit;
analyze index ind_t_object_id validate structure;
select s.height,
       round((del_lf_rows_len / lf_rows_len) * 100, 2) || '%' frag_ratio,
       s.pct_used
  from index_stats s
 where s.name = 'IND_T_OBJECT_ID';
    HEIGHT FRAG_RATIO        PCT_USED
---------- --------------- ----------
         3 89.53%               84
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值