2021-09-18
表空间有个数据文件1,里面有个对象a,现在shrink这个表空间,a会不会跑到数据文件2上,还是仍然停留在1上?
表空间有个数据文件1,里面有个对象a,现在shrink这个表空间,a会不会跑到数据文件2上,还是仍然停留在1上?
我来答
添加附件
收藏
分享
问题补充
1条回答
默认
最新
回答交流
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
墨值悬赏
表空间有个数据文件1,里面有个对象a,现在shrink这个表空间,a会不会跑到数据文件2上,还是仍然停留在1上?
默认只移动行数据!
oracle以block为单位,进行了block间的数据copy.那么shrink后,部分行数据的rowid发生了变化,同时,部分行数据的物理存储的顺序也发生了变化,而table所位于的block的区域却没有变化,这就说明,shrink只移动了table其中一部分的行数据,来完成释放空间,而且,这个过程是在table当前所使用的block中完成的。
使用shrink的前提条件
select row_movement from dba_tables where table_name='' and owner='';
alter table emp enable row movement;
操作步骤:
alter table emp enable row movement;
alter table emp shrink space compact;
释放阶段,降低HWM,这个阶段会对表进行排他锁。用户不能对表进行DML操作。
alter table emp shrnk space;
(进行 shrnk 操作后,索引不会失效,这是有别与 move 操作的)
alter table emp disable row movement;
使用shrink的注意事项
评论
有用 0
墨值悬赏