如何解决几十万条记录数据转换的速度问题。从foxpro的dbf到ms sql数据库的数据转换,数据量非常大,有几十万条。目前我的方法是
while not eof {
先从源库读一条,再写入ms sql一条;
}必须用vb实现,ADO控件。大概要6-8个小时才能完成,请问如何解决速度问题??采用什么方法??最快大概需要多长时间。我的email:[email protected],分不是问题
while not eof {
先从源库读一条,再写入ms sql一条;
}必须用vb实现,ADO控件。大概要6-8个小时才能完成,请问如何解决速度问题??采用什么方法??最快大概需要多长时间。我的email:[email protected],分不是问题
或者
自己用它的控件自己做个导出导入工具即可
不是必须用ADO处理,
那样会很快的
sql server 自带的数据导入导出工具啊!
odb.BeginTrans
szSql = "SELECT DISTINCT tvi.owner_id, tci.transport_company_short_name, tvi.transport_company_id,tvi.split_company_id " _
& " FROM dbo.transport_vehicle_info tvi INNER JOIN dbo.transport_company_info tci ON tvi.transport_company_id = tci.transport_company_id" '车主
Set rstemp = odb.Execute(szSql)
szSql = ""
i = 1
rstemp.MoveFirst
Do While Not rstemp.EOF
szSql = "INSERT INTO owner_info(owner_id, owner_name, address, id_card, transport_company_id, split_company_id, contact, account_id,delete_state,annotation) " _
& "VALUES ('" & Trim(rstemp!owner_id) & "','" & Trim(rstemp!transport_company_short_name) & "',' ',' ','" & Trim(rstemp!transport_company_id) & "','" & Trim(rstemp!split_company_id) & "',' ',' ',0,' ')"
odb.Execute szSql, , , 0
i = i + 1
rstemp.MoveNext
Loop
odb.CommitTrans
Set odb = Nothing
Set rstemp = Nothing也有几万条 只需30-60秒 不要6-8个小时才能完成吧
(我不懂,瞎说的)
谢谢: cbr7619(cbr7619
入你需在编程中实现,那就得用DTS(数据转换服务),具体内容可以去SQL server 的联机丛书中查阅(关键字DTS),那里有详细讲解和VB事例。
另外,程序中的DTS包,你可以利用数据导入向导\保存、调度、复制包步骤,另存为VB文件,以后在程序中直接使用
为何不把原代码拿来看看?
然后
1.把该文件加入你的工程
2.把该文件的Sub Main()更名为你的过程名
3.找出对DBF文件应用的地方,换成一参数带入
4.在需数据转换的地方调用该过程
即可另外记住:在你的工程中要引用
C:\Program Files\Microsoft SQL Server\80\Tools\Binn\dtspkg.dll
Microsoft DTSPackage Object Library
然后再编程对数据库的数据进行操作。