(500分) 急!难题!-----DBF表快速转换到SQL Server!(100分)

  • 主题发起人 主题发起人 liansz
  • 开始时间 开始时间
L

liansz

Unregistered / Unconfirmed
GUEST, unregistred user!
现在要把5个DBF表数据快速转换到SQl Server对应的表中去,表不大,每个100k左右,
600条纪录,但是要求速度越快越好(全部操作时间最好小于2秒)。
我原来采用BatchMove逐个移动,大概要5-6秒,后来采用多线程在每个线程中用
BatchMove移动一个表,但是速度并没有提高,呜呜
现在使用逐条读取DBF数据再插入SQl Server中去,结果更慢,呜呜!
请高手指教,如何才能提高速度,是否能够把时间控制在2秒以内!
 
呵呵,BCP,很快的,每秒1000条以上。如果不考虑编程的话,Sql 7的import and export
Data就可以达到这个目的,Sql 6.5的话,有个Dos程序,msbcp.exe呵呵,不错的。其实偷
懒的做法是你在程序中调用msbcp.exe来将数据导入到Sql Server中去就行了。
BCP可以参考Sql的帮助
 
为什么操作时间最好小于2秒
 
因为对程序的速度要求很高,要求频繁更新
 
用SQL 语句直接导入不行吗? 那样应该很快的。
如果还不行,建议升级机器吧, :P
 
小的数据库SQL不一定比遍历快,用TABLE试试。
 
肯定是这个应用的结构有问题,不过我们有时候也不得不做。
还是。。。试试存储过程吧。。。
 
用sql 应该是最快的,
insert table1
select * from table2
用不了1秒
 
BatchMove应该和Sql 7的import and export Data速度差不多
你可以先导入一个临时表再用insert table1 select * from table2 可能会好一点
速度还和你的网络速度有关,服务器的速度也要提高
 
用存储过程吧!
 
同意foolaliu,用bcp。不过好象要先把dbf的内容转成文本的(不知道有没有什么好办法),
然后把拼出来的bcp语句写入一个.bat文件里,再开一个DOS窗口(隐藏的)让它自己去执行就可以了。
 
用DTS打包,好象可以在程序中调用
 
DBF: ADO->ODBC
SQL: ADO
用 TADODATASET 的 CLONE ,
应该可以.
 
多人接受答案了。
 
后退
顶部