我在现场制作环境中有一个Oracle表,并且该表的大小超过了一半。是否有可能将这个普通的Oracle表从堆组织到索引组织或只能通过将该表中的数据移动到另一个索引组织的新表来实现?无论哪种方式,如果您能请您列出此程序中涉及的步骤,我将不胜感激。将Oracle表移动到索引组织
4
A
回答
2
没有办法改变表使其成为索引组织表。相反,您可以重新定义表格(使用DBMS_REDEFINITION)或者可以使用CTAS创建新表格。
例子:
create table t2 (
id number, first_name varchar2(20),
constraint pk_id primary key (id)
)
organization index
as select * from t1;
1
我从来没有使用过DBMS_REDEFINITION
但CTAS它不是创建表,如果它是只生产工序。
- 列出所有索引,约束,外键等基于系统视图
- 准备创建索引,约束和改变外键的语句。准备触发器列表,依赖于表格的过程。
- (这一步之前考虑锁,如果你能)创建表作为选择
- 创建各项指标,与步骤2
- 交换表名和调剂外键预处理语句的约束(这一步可能会导致一些错误,如果你(如果你期望它在那个时候你应该锁定通过外键引用的表和表)
- 编译依赖对象从2(如果你锁定表在这里解锁)
- (如果你没有' t在步骤3上锁定)插入表
select * from new minus select * from old;
或者如果您有插入行的timstamp只插入新行
我希望列表是完整的。
相关问题
- 1. ORACLE:表是按索引组织的吗?
- 2. Oracle:索引组织的空值表
- 3. 如何在索引组织表上构建Oracle文本索引?
- 4. 是否适合索引组织表?
- 5. 索引有组织的表碎片
- 6. 创建索引组织表问题
- 7. 哪些DBMS提供索引组织表?
- 8. 将Oracle表移动到Postgres数据库
- 9. Z索引组织策略
- 10. GoogleApps Provisioning API将用户从一个组织移动到另一个组织
- 11. Qt - 将表列移动到表格第一列索引
- 12. 将索引视图移动到单独的文件组
- 13. 将索引移动到其他文件组
- 14. 将数组元素移动到PHP中的新索引中
- 15. 在索引组织表中存储Oracle用户定义类型的效率
- 16. Oracle数据库:具有NULL值的索引组织表(在多列主键中)
- 17. 移动索引
- 18. 将表从最后索引移动到第一个
- 19. 组织要求并将它们移动到文档顶部
- 20. 如何将项目移动到另一个组织或空间
- 21. 将Oracle数据(和索引)移动到SQL-Server - 数据大小写
- 22. 重新组织阵列,移动索引,以特定位置PHP的
- 23. 将GitHub存储库移动到组织时处理NPM和Bower注册表项
- 24. 将某个二维数组索引下的数据移动到一维数组
- 25. 索引创建将弹性搜索集群移动到红色
- 26. 停止索引重新组织作业
- 27. 如何组织多列B树索引
- 28. Corona - 将移动组移动到
- 29. Salesforce组织对组织对象迁移
- 30. 将Salesforce数据从一个组织迁移到另一个组织
谢谢JSapkota。我在其他网站上看到了相同的评论,并且对如何使用DBMS_REDEFINITION包进行了更详细的阐述。例如,使用上面的同样的SQL,如何使用DBMS_REDEFINITION包,以便不必创建新的表t2,但是使用该包来转换t1。 – TS74
您还需要创建具有新物理结构的新临时表(在这里您可以定义表的组织)来重新定义您的表及其相当长的过程。本文档链接提供了一些有用的示例:http://docs.oracle.com/cd/B28359_01/server.111/b28310/tables007.htm – JSapkota
这是否可以在没有指定主键的情况下工作? IOT必须具有主键。 –