如果你要把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以后的版本都可以使用