Oracle中实现大表数据快速转移
2009-12-01 18:48
337 查看
如果你要把Oracle里的大量数据(80M以上)转移到另外的用户,另外的表空间里。可以用下面介绍的快速转移数据的方法。
一、建新表的方式
注意事项: 新建的表没有原来表的索引和默认值, 只有非空(not null)的约束素条件可以继承过来,其它的约束条件或索引需要重新建立。
二、直接插入的方法
注意事项:
用INSERT /*+ APPEND */ 的方法会对target_tablename产生级别为6的独占锁,如果运行此命令时还有对target_tablename的DML操作会排队在它后面,对OLTP系统在用的表操作是不合适的。
说明:这两种方法转移数据时没有用SGA里数据缓冲区和事物处理的回滚段, 也不写联机事物日志,就象数据库装载工具Solload一样直接把数据写到物理文件,速度是很快的。在Oracle8i以后的版本都可以使用。
一、建新表的方式
create table target_tablename tablespace target_tablespace_name nologging pctfree 10 pctused 60 storage(initial 5M next 5M minextents 1 maxextents unlimited pctincrease 0) as select * from username.source_tablename where 条件; |
注意事项: 新建的表没有原来表的索引和默认值, 只有非空(not null)的约束素条件可以继承过来,其它的约束条件或索引需要重新建立。
二、直接插入的方法
INSERT /*+ APPEND */ INTO target_tablename SELECT * FROM username.source_tablename where 条件; COMMIT; |
用INSERT /*+ APPEND */ 的方法会对target_tablename产生级别为6的独占锁,如果运行此命令时还有对target_tablename的DML操作会排队在它后面,对OLTP系统在用的表操作是不合适的。
说明:这两种方法转移数据时没有用SGA里数据缓冲区和事物处理的回滚段, 也不写联机事物日志,就象数据库装载工具Solload一样直接把数据写到物理文件,速度是很快的。在Oracle8i以后的版本都可以使用。
相关文章推荐
- 如何快速的实现oracle数据表的的增删改?
- 轻松快速实现MySql数据向SQLServer数据转移
- C#+“外部表”实现Oracle数据快速插入
- Oracle 快速插入1000万条数据的实现方式
- C#+“外部表”实现Oracle数据快速插入
- java实现oracle 快速卸载数据并ftp上传数据给各个其他业务系统[从学习到工作(一)]
- 批量快速的导入导出Oracle的数据(spool缓冲池、java实现)
- 使用sqluldr2实现将Oracle数据无落地快速导入Greenplum数据库
- oracle使用bulk collect insert实现大数据快速迁移
- Oracle如何快速、大量的插入数据
- oracle 存储过程实现数据CURD操作
- 利用TOAD实现EXCEL数据在oracle的导入导出
- MYSQL-实现ORACLE 和SQLserver数据中- row_number() over(partition by ) 分组排序功能
- 两个一样的oracle 数据库怎么实现数据定期同步?
- GUI实现数据转移(文本框到文本域,流失布局)
- Oracle快速导入数据工具
- 快速实现数据编辑器——不要再傻傻地用代码一行行绘制界面了
- 闪传“一键换机”帮你快速转移手机数据
- 利用DB-link实现快速跨库表数据复制
- 使用Chrome Headless 快速实现java版数据的抓取