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/