六十万条记录输入数据库的问题 我现在有六十万条记录需要输入sql2000数据库,方法很简单,就是query1.append;query1.post;我的问题是,用什么办法可以让这个操作以最短的时间完成,因为我大约算了一下,用目前的方法,需要20多小时,谢谢 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 记录在那里来?看看这里的导入方法有没有适合你的http://www.pconline.com.cn/pcedu/empolder/db/sql/0502/551039.html query1.append;query1.post;不要每一条都post一次尽量批量post还可以再多开几个线程来存 以前我把70几M的txt文件入库就这么弄的,还是比较快....嘿嘿 多开线程没有用的.因为你的操作对象是目标数据库.1.不要单值 POST2.看你以前的数据是什么格式的,最好用导入导出功能想法去实现. 建议自己根据文件内容构造SQL语句,然后多条语句执行一次,比如构造100条SQL语句,彼此之间用“;”分割,然后一次性将这100条SQL语句执行,可以有效的防止频繁和数据库进行通讯,提高更新速度! mclkings(网络学子) ( ) 信誉:100 Blog 加为好友 2007-7-5 19:24:24 得分: 0 多开线程没有用的.因为你的操作对象是目标数据库.1.不要单值 POST2.看你以前的数据是什么格式的,最好用导入导出功能想法去实现. ======================可以建成多个数据库,每个数据库同表,然后再把数据倒一下嘛 对于MSSQL,建议在这种情况下采用TADOCommand,然后多条insert语句同时提交,各语句之间使用分号(;)分隔,相当于查询分析器当中的"go",如此大概每次提交500/1000条(主要根据数据内容的字节数而定),60W条记录,大概几分钟到几十分钟(关键看机器和网络的性能)。 这个我有经验了,你用过vfp吗,先把这些数据导入到vfp中,很快啊,然后再把vfp的库导入到sql server 2000中,就会快很多呀。 用bcp.exe或者DTS====================可以试着拦截一下bcp或者dts的数据包,它们里面就是多条同时insert BCP应该几分钟可以搞定吧,视服务器配置而定。这个数据不大。以前试着导三千多万条记录的表,好像用了二个小时DTS 關鍵是你的这个Query的语句写法了,如果你的语句是一直不变的,那麽越到後來越慢。如果你的Query在这个插入過程中,最大時候的記錄数在2000到5000条,那麽速度應當是可观的。不知你明白沒有?比如:記錄是按時間排序的,Query的语句中就可加上時間限制,当你的程序判斷其中的記錄已经到5000时,就post,然後关掉Query,重新更换这个時間條件,再一条条插入……相信是很快的。限制記錄数过小,则條件切換頻繁,速度不快;限制記錄数过大,佔用資源过大,速度也不会快。 20个小时?太夸张了吧我测试过的,delphi每秒可以插入1000多条数据 手头有个项目,需要在DELPHI中用PELCO-D协议控制摄像机,大家有这样的例子或是有这样的控件吗?谢谢 多表查询,急! 如何实现这样的表格。。 关于动态数组? 如何手动修改dbgrid中某一项内容的值???高分,紧急,100! 关于modalresult 的问题 能否给我讲讲怎么用ADOconnectionString连接Paradox数据库。请务必详细点,我是新手! 关于打印时单位转换的问题 急招DELPHI程序员~~~~ 用SPCOMM控件做串口调试遇到的怪问题 如何制作CAB文件 要求不能用Winrar打开 请问哪儿可以买到正版的D7?
看看这里的导入方法有没有适合你的
http://www.pconline.com.cn/pcedu/empolder/db/sql/0502/551039.html
query1.post;
不要每一条都post一次
尽量批量post
还可以再多开几个线程来存
嘿嘿
2.看你以前的数据是什么格式的,最好用导入导出功能想法去实现.
多开线程没有用的.因为你的操作对象是目标数据库.1.不要单值 POST
2.看你以前的数据是什么格式的,最好用导入导出功能想法去实现.
======================
可以建成多个数据库,每个数据库同表,然后再把数据倒一下嘛
====================
可以试着拦截一下bcp或者dts的数据包,它们里面就是多条同时insert
如果你的Query在这个插入過程中,最大時候的記錄数在2000到5000条,那麽速度應當是可观的。
不知你明白沒有?比如:記錄是按時間排序的,Query的语句中就可加上時間限制,当你的程序判斷其中的記錄已经到5000时,就post,然後关掉Query,重新更换这个時間條件,再一条条插入……
相信是很快的。
限制記錄数过小,则條件切換頻繁,速度不快;限制記錄数过大,佔用資源过大,速度也不会快。
我测试过的,delphi每秒可以插入1000多条数据