数据库

位置:IT落伍者 >> 数据库 >> 浏览文章

快速转移数据的方法


发布日期:2023年03月28日
 
快速转移数据的方法

如果你要把ORACLE里的大量数据(M以上)转移到另外的用户另外的表空间里可以用下面介绍的快速转移

数据的方法

建新表的方式

create table target_tablename tablespace target_tablespace_name nologging

pctfree pctused

storage(initial M next M minextents maxextents unlimited pctincrease )

as select * from usernamesource_tablename where 条件;

注意事项 新建的表没有原来表的索引和默认值

只有非空(not null)的约束素条件可以继承过来

其它的约束条件或索引需要重新建立

直接插入的方法

INSERT /*+ APPEND */ INTO target_tablename

SELECT * FROM usernamesource_tablename where 条件;

COMMIT;

注意事项

用INSERT /*+ APPEND */ 的方法会对target_tablename产生级别为的独占锁

如果运行此命令时还有对target_tablename的DML操作会排队在它后面

对OLTP系统在用的表操作是不合适的

说明这两种方法转移数据时没有用SGA里数据缓沖区和事物处理的回滚段 也不写联机事物日志

就象数据库装载工具SQLLOAD一样直接把数据写到物理文件速度是很快的

在ORACLEI以后的版本都可以使用

上一篇:Oracle11gSQL新功能pivot/unpivot

下一篇:Oracle数据库的五个使用技巧