一个insert的问题,大侠指教,在线等,急!
小弟要把表A的数据插入到表B,因为数据量大,所以想分批进行插入。
譬如A表有数据10000万条。
偶希望实现,通过10次来完成插入工作。
就是第一次查1000万条。无错的话,然后第二次插入后1000万条。。。。
10次以后完成全部插入。
急等
小弟要把表A的数据插入到表B,因为数据量大,所以想分批进行插入。
譬如A表有数据10000万条。
偶希望实现,通过10次来完成插入工作。
就是第一次查1000万条。无错的话,然后第二次插入后1000万条。。。。
10次以后完成全部插入。
急等
用rowid和rownum三层select嵌套查询,速度比较快
高人怎么写呀。给个例子
偶然想到的一种方式,不妨试一下
首先找到最大最小的rowid
select min(rowid),max(rowid) from tbname ;
然后,通过结果计算差值,找到那9个点(rowid号)
最后通过rowid来检索插入,效率应该最高了
insert into tbname_new select * from where rowid between xxx and yyy;
但是9个点偶怎么算呀,地址也,偶是菜鸟不会算呀
试试这个时间多少?
insert into B
(Select * from A where rowid in
(SELECT id FROM
(SELECT C.rowid id, rownum t FROM
(SELECT rowid FROM A) C
WHERE rownum <= 20000000
)
WHERE t > 10000000
)
);
http://www.cnoug.org/viewthread.php?tid=16060
oh,谢谢大家帮忙,昨天比较忙,拿现在就结帖子了。thanks to all