rebuild online的时候读的是表数据,全表扫描表创建一个新的索引,这中间旧的索引还可以使用并且不BLOCK DML操作,在7*24小时的数据库中是比较适用的情况。
直接REBUILD的话是读取原有索引数据进行REBUILD,会BLOCK住对表的DML操作。
索引rebuild在 在线库操作也是一个很麻烦&恐怖的事情。
一般情况下,只能采用rebuild online,但是rebuild online在有修改的情况下,又非常慢。
另外,rebuild与rebuild online差别也很大的,rebuild online读的是表,rebuild读的是索引。
coalesce一般不做,没有太大意义的事情
我再解释一下,为什么一个稳定的索引coalesce效果不大呢
因为索引扫描,基本是小范围的范围扫描与唯一索引扫描居多,而索引全扫描与快速全扫描都是很少的。
那么,范围扫描与唯一扫描,coalesce基本是没有什么优化的效果。
但是,如果索引已经倾斜的很严重,如果这个时候去做coalesce,是要扫描所有的叶块,合并数据,并改变上层的指针的,代价比rebuild更大。
nonarchive就coalesce好了
如果是archive log mode, 建议少用.
阅读(1388) | 评论(0) | 转发(0) |