ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 低效?! REBULID索引同时MOVE表空间

低效?! REBULID索引同时MOVE表空间

原创 Linux操作系统 作者:davidyu720 时间:2019-05-25 16:06:06 0 删除 编辑

有个大表,数据3.8G,一个索引2.2G。需要将数据和索引分别移动到新建立的表空间。

首先ALTER TABLE BIG_TABLE MOVE tablespace TS_1。执行时长 812.75 seconds然后ALTER INDEX I_BG1 REBUILD tablespace TS_2。执行时长 1325.343 seconds

也就是REBULID索引比MOVE表本身多花约一倍的时间!

在REBULID过程中,我观察到:TS_2的使用空间也不并非如我所料-从一开始就不断增长,而是开始很长时间都不增长,过了很长时间后,才开始逐渐增长。

这应该意味着:首先在原表空间内REBUILD,然后再MOVE到新表空间呢?

早知如此,还不如drop index然后直接重建到新表空间中呢!因为表被MOVE后,索引已经是UNUSABLE状态了。

现在想想,在alter index xxx rebuild 后指定tablespace xxx并不会低效:
1)如果不指定新表空间,ORACLE会将rebuild的结果存放到当前表空间;
2)如果指定新表空间,ORACLE就将rebuild的结果存放到新表空间。


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/9844649/viewspace-580053/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2007-08-18

  • 博文量
    201
  • 访问量
    151347