在生产中,需要将一张表的有五千多万条数据量的表从Oracle中跑到DB2中,但发现insert 2个小时也出不来
目前的解决方案:
- Insert
等着一直跑,因为是insert,肯定会跑出来,但是ETL的时候会非常慢
- Load
- 按年份建表,每年建一张表,最后ETL跑今年上月的数,但是这样实际上占的内存更多,因为这几张表存在数据冗余的情况
- 一年一年的数据挨个insert into进去,一年一年的插数比一下插几年的数快很多
- 调用游标
call sysproc.admin_cmd('load from (select * from srctab) of cursor insert into tartab')
注:在使用时,注意要插入的select查询的sql中用可能要用单引号转义