暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Oracle 表在表空间内移动

askTom 2017-08-01
265

问题描述

嗨,

1) 您能否使用以下命令解释表空间中表移动的内部?试图了解它是如何在块级别发生的。

更改表 “表名” 移动;

2) 在移动过程中,我们是否需要向表空间添加额外的空间?如果是,为什么?

3) 为什么移动过程中存档生成很高?已经观察到这一点。



专家解答

1.这样做将块移动到新的段您可以通过查看移动前后的rowid更改来看到这一点:

create table t as
  select rownum x from dual connect by level <= 1000;

select min(rowid), max(rowid) from t;

MIN(ROWID)          MAX(ROWID)          
AAAcpaAABAAARTfAAA  AAAcpaAABAAARTyAFV  

alter table t move;

select min(rowid), max(rowid) from t;

MIN(ROWID)          MAX(ROWID)          
AAAcpbAABAAART1AAA  AAAcpbAABAAART2AFV  


2.也许吧。您正在将数据移动到新位置,因此在一段时间内您可能需要足够的空间来存储表的两个副本:

https://asktom.oracle.com/pls/apex/f?p=100:11:::NO:RP:P11_QUESTION_ID:9527343800346989243

3.除其他事项外,当您将行移动到新的段时,Oracle数据库必须更新所有关联索引以指向新位置。这会产生重做。
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论