index online rebuild 和drop /create 注意事项

1.业务高峰期 使用rebuild online 会导致索引一直创建不上去
如下测试
会话一 :
soe100@SPDBTEST>insert into t_1 values(1,'zls');

1 row created.

会话二 :
soe100@SPDBTEST>alter index ind_id1 rebuild online;

会话三:
此时会发现数据库出现TX锁等待通过如下查询获取等待信息

soe100@SPDBTEST>select a.sid,b.sid from v$lock a,v$lock b where a.id1=b.id1 and a.id2=b.id2 and a.lmode>0 and b.request>0;

       SID        SID
---------- ----------
      1897       6588

会话四:
soe100@SPDBTEST>insert into t_1 values(2,'zls');

1 row created.

可以发现会话一堵塞了会话二,那么我们提交会话一后
在会话三查询锁等待信息

soe100@SPDBTEST>select a.sid,b.sid from v$lock a,v$lock b where a.id1=b.id1 and a.id2=b.id2 and a.lmode>0 and b.request>0;

       SID        SID
---------- ----------
      2841       6588

可以发现 会话二倍 会话四堵塞。

小结:上面的小测试可以说明业务高峰期,不要使用alter index indexname rebuild online;

下面我们来看看drop /create的方式
当有事务出现的时候发现: drop直接报错
会话一:
soe100@SPDBTEST>insert into t_1 values(1,'zls');

1 row created.

会话二:
soe100@SPDBTEST>drop index ind_id1;
drop index ind_id1
           *
ERROR at line 1:
ORA-00054: resource busy and acquire with NOWAIT specified or timeout expired
小结:创建索引,有明显报错信息提醒。

总结:业务高峰期,创建索引可以根据实际情况选择合理的方式 ,如果索引非常重要且表很大,那么请使用drop,create方式,但是会短暂影响到一些业务,
而使用online rebuild可以使得索引久久无法创建成功。


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/31134212/viewspace-2086313/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/31134212/viewspace-2086313/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值