码迷,mamicode.com
首页 > 数据库 > 详细

Oracle create index online

时间:2017-04-15 10:57:02      阅读:213      评论:0      收藏:0      [点我收藏+]

标签:oracle   index   lock   online   

1.1     create index

  1. 如果目标表有DML操作,并且没有提交,此时创建索引报错

ORA-00054: resource busy and acquire with NOWAIT specifiedor timeout expired

  1. 如果目标表上正在建立索引(create index),此时DML操作会被阻塞;

总结:直接create index必须确定目标表没有DML操作,或者停业务情况下建立索引。

1.2     create index online

  1. 如果目标表有DML操作,并且没有提交,此时使用online会等待提交后再建立索引;

  2. 如果目标表上正在建立索引(create index online),此后DML操作会不会被阻塞,但是没有提交的话会一直阻塞建立索引,待DML提交后继续创建索引;

总结:如果目标库正在频繁入库,可考虑使用online建立。


实际上,伴随着资源的争用,就是lock的产生,有兴趣的朋友的可以研究lock的兼容矩阵。

本文出自 “90SirDB” 博客,请务必保留此出处http://90sirdb.blog.51cto.com/8713279/1916140

Oracle create index online

标签:oracle   index   lock   online   

原文地址:http://90sirdb.blog.51cto.com/8713279/1916140

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!