| 网站首页 | 下载中心 | 技术文章 | 站内搜索 | 
最新公告:

  没有公告

您现在的位置: 源码仓库 >> 技术文章 >> 综合文章 >> 其他 >> 正文
一次性插入大量数据(10万条以上)的方法 DelphiUN.com
一次性插入大量数据(10万条以上)的方法
作者:佚名 文章来源:本站原创 点击数: 更新时间:2008-4-19 16:24:30
楼主可以使用BulkInsert或者BCP工具
这里转载一段文章

SQL Server中采用BULK INSERT实现大数据量文本文件批量导入,该文章本站转载自网络,如有侵权请告之,我们将会及时将其删除,其正文内容如下:

方案一:

遍历文本文件,解析每一行,形成SQL语句后向数据库插入。

方案二

遍历文本文件,解析每一行,将SQL语句保存到文本文件然后执行。

方案三

使用SQL Server Bulk Insert功能披露导入数据,然后在数据库中做数据处理。



刚开始用方案一做的,50MB文本文件导入大约20-25分钟,后来进行了优化,采用数据批量插入,性能提升不大。

继续优化,使用多线程向数据库中插入数据,性能提升10-20%左右,效果也不好。


方案二没有完全测试,主要是生成SQL文件耗时15分钟左右,不太理想。

最后使用BULK INSERT,然后在数据库中写脚本对数据进行处理,50MB文件10秒即可导入

FQuery.SQL.Text := 'BULK INSERT LOGDATA FROM ' + QuotedStr(FFileName)
+ ' WITH (FIELDTERMINATOR = '','', ROWTERMINATOR = ''\n'', BATCHSIZE = 500)';
FQuery.ExecSQL;


最后执行大量的UPDATE语句,将数据格式化

建议在做大数据量导入的时候还是用BULK INSERT ,SQL SERVER 性能在那里摆着,一个SQL 4ms,1000行就要4秒,根本快不了
  • 上一篇文章:

  • 下一篇文章: 没有了
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    | 设为首页 | 加入收藏 | 友情链接 | 关于我们 |

    源码仓库 http://www.delphiun.com
    豫ICP备05002841号 Copyright(C)2005 源码仓库 Delphiun.COM. All Rights Reserved.