oracle创建大表索引慢,Oracle 大表创建索引

Oracle 大表创建索引

祖仙教小凡仙 海鲨数据库架构师

有个2亿记录的表,发现需要添加一个联合索引,结果就采用普通的create index index_name on tablename (entp_id,sell_date),结果悲剧了,把所有的DML语句都阻塞了,导致系统不能正常使用,还好是晚上10点,用户不是非常多,1个小时候,索引结束,阻塞解决;上网查了一下,如果加上 online参数后,就可以在线做索引,而不需要阻塞所有的DML语句,血的教训,拿出来与各位共勉,

创建测试表

* create table t_test

* (

* col1 number,

* col2 number

* );

造测试数据(根据自己机器具体情况估计需要的数据量,使创建索引的时间大概在20-30秒)

insert into t_test

select rownum col1, rownum col2 from dual

connect by rownum<10000000;

commit;

create index

会话1:

SQL> set time on

10:22:01 SQL> set timing on

10:22:02 SQL>

--获取 会话1 sid

10:22:04 SQL> select sid from v$mystat where rownum=1;

SID

144

Elapsed: 00

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值