Sign-up....

一个insert的问题,大侠指教,在线等,急!

小弟要把表A的数据插入到表B,因为数据量大,所以想分批进行插入。

譬如A表有数据10000万条。

偶希望实现,通过10次来完成插入工作。

就是第一次查1000万条。无错的话,然后第二次插入后1000万条。。。。

10次以后完成全部插入。

急等

[123 byte] By [msdn] at [2007-9-21 9:34:53]
# 1 Re: 一个insert的问题,大侠指教,在线等,急!

用rowid和rownum三层select嵌套查询,速度比较快

waterfirer at 2005-10-18 16:00:13 >
# 2 Re: 一个insert的问题,大侠指教,在线等,急!

高人怎么写呀。给个例子

henghowzc at 2005-10-18 16:03:14 >
# 3 Re: 一个insert的问题,大侠指教,在线等,急!

偶然想到的一种方式,不妨试一下

首先找到最大最小的rowid

select min(rowid),max(rowid) from tbname ;

然后,通过结果计算差值,找到那9个点(rowid号)

最后通过rowid来检索插入,效率应该最高了

insert into tbname_new select * from where rowid between xxx and yyy;

bzszp at 2005-10-18 16:15:23 >
# 4 Re: 一个insert的问题,大侠指教,在线等,急!

但是9个点偶怎么算呀,地址也,偶是菜鸟不会算呀

henghowzc at 2005-10-18 16:23:09 >
# 5 Re: 一个insert的问题,大侠指教,在线等,急!

试试这个时间多少?

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

)

);

waterfirer at 2005-10-18 16:35:31 >
# 6 Re: 一个insert的问题,大侠指教,在线等,急!

http://www.cnoug.org/viewthread.php?tid=16060

chanet at 2005-10-18 23:58:46 >
# 7 Re: 一个insert的问题,大侠指教,在线等,急!

oh,谢谢大家帮忙,昨天比较忙,拿现在就结帖子了。thanks to all

henghowzc at 2005-10-20 8:42:15 >

Oracle

All Classified