Oracle在线新增索引

  Oracle新增索引语法很简单,如果是普通索引的话:

create Index IDX_T_WLF on T_WLF(ACTIVITYID,ACTIVETIME) tablespace TBS_VCODE_IDX;

  如果是唯一索引的话:

create unique Index IDX_T_WLF on T_WLF(ACTIVITYID,ACTIVETIME) tablespace TBS_VCODE_IDX;

  以上方式默认是非在线的,啥是非在线?就是我们优先执行索引创建,其他DML语句执行不了。在线模式就是允许DML语句同时执行:

create unique Index IDX_T_WLF on T_WLF(ACTIVITYID,ACTIVETIME) online tablespace TBS_VCODE_IDX;

  在线与非在线的区别:非在线锁表,优先创建索引,此时DML都被阻塞,所以快;相反,在线锁的是行而非表,通过临时表进行索引的创建,所以不会影响DML操作,但副作用就是慢。

  如果在生产环境操作,不停服务的话,势必导致创建索引期间仍有DML操作进来。另外如果是大表,那么采用非在线而导致锁表所带来的影响可能会很大。一句话,生产环境不停服的脚本操作,建议使用online。

原文地址:https://www.cnblogs.com/wuxun1997/p/9803253.html