停止空想

老张的空中之家

online/非online create rebuild index的区别。

作者:admin 发表时间:七月 - 29 - 2007

alter index XX  rebulid  online  或者create index  XXX on  tableXX (ID) online

与不加online的相比,加了online的不阻塞DML。在大的系统中,如果不加online, index 是加不上去的,

并且会造成整个系统的问题。

原因如下:

piner介绍说:

他们加的锁的级别不一样,online是一个级别为2的RS锁,不阻塞级别为3的RX锁,也就是 dml时候加在表上的TM锁。

但是,阻塞大部分的DDL加在表上的X类型的TM锁

如果普通的create index,如果没有online,加的则是级别为4的S类型TM锁。这个会阻塞DML语句加在表上面的类型为RX的TM锁。所以,这个时候表锁都加不上,更不用行锁了,阻塞在表上面。

简单一句话:加 online时 :DDL锁 是有的,但是没有DML锁。不加 online ,DDL锁和DML锁都有

类别:Oracle

发表评论