百萬記錄從A表到B表


http://topic.csdn.net/u/20110117/16/fdd91e56-f34e-4b46-a2fc-5385681117c6.html?48184


幫忙看一下謝了!!!!

4 个解决方案

#1


A表的結構就是下面這樣的:
A (用戶編號, 姓名, 地址, 郵編,國家) 用戶編號就是主鍵

我現在需要將這個表里的記錄信息,一條一條的處理 抽取各個列的部分信息 組成一個長的字符串存到 B表的“抽取信息”這一列當中。

B表的結構就是下面這樣的
B(用戶編號,姓名,地址,郵編,國家,抽取信息)




我用java寫代碼


方法一:

最開始的時候,我就是先將A表的數據弄個resultset然后在while語句里面做個循環更新B表當中的數據

ResultSet rs=stmt.execute(select * from A)

while (rs.next)
{
  處理該條記錄,得到處理出來的值;
  rs.updateString("抽取信息",處理的值);把這個值放到“抽取信息”這一列;
  rs.updaterow();

}

就按照這樣的方式,我發現及時經過了好長好長時間都不能將B表更新完,而且會越來越慢越來越慢。估計每個幾十分鍾也弄不出來 所以根本不成。



后來我就在論壇里搜索了一下,
發現有人說用存儲過程處理海量數據的說法,

我就學了一下,用方法二:



在sql server里面寫了個最最簡單的存儲過程 update b (列) @對應的值
然后在那個while 循環里面調用這存儲過程
while (rs.next)
{
  調用存儲過程;

}


我發現雖然速度快了, 雖然不是幾十分鍾吧,但是也得好多好多分鍾。所以我也覺得這方法不對勁兒。

#2


建好索引批量處理的好,一行一行的,速度快不上來。

#3


insert into b 
select 用戶編號, 姓名, 地址, 郵編 , 國家 , (抽取各個列的部分信息 組成一個長的字符串) from a

#4


我的貼兒您回了就給分兒。

剛剛弄了一下bcp,可以了。


注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2021 ITdaan.com