oracle copy使用

来源:互联网 发布:淘宝欢乐逛在哪里 编辑:程序博客网 时间:2024/06/05 16:34

 测试成功语句
copy from cplatformdata/cplatformdata@GEJUN
to scott/tiger@TEST create t_spm_bill --说明:在scott/tiger用户下创建t_spm_bill表
using select * from t_spm_bill_info_11 where rownum<20; --说明:using使用的是cplatformdata用户下的表

copy from cplatformdata/cplatformdata@GEJUN
to scott/tiger@TEST append t_spm_bill --添加
using select * from t_spm_bill_info_11 where rownum<20;

 

SQL> copy from scott/tiger@lsj to lsj/lsj@sunserve create dept using select * from dept;
2.4 性能实验结果
实验数据:
记录数:5,082,500
数据量:504M
实验结果

方案------------------------执行时间(秒) ---------Undo(M) ------Redo(M)
Copy command -------------520.51----------------------0 ---------------- 592
Insert into…select …---- 631.64 ------------------345 -------------1720
Create Table…------------- 244.79 --------------------0 ----------------515

2.总结

 Create Table…as select…是最快的,而且生成的Undo和Redo信息最少,
所以只要可能,请尽量使用这种方案。但这种方案有一定的限制,
即目标表必须是不存在的,不能用它向已有的目标表中追加记录。

 Insert into … select … 是最慢的,而且生成最多的Undo和Redo信息,
对I/O的压力最大,优势在于大家对它比较熟悉,使用起来比较简单,
适合于处理少量的数据,若要处理大量的数据,不推荐使用这种方案。

 Copy Command可以处理Create Table不能处理的情况,即向已有的数据表中追加记录,
相对于insert来说,效率更高一些,生成更少的Redo信息,不生成Undo信息,
所以在执行大量的数据追加时,推荐使用Copy Command命令

原创粉丝点击