excel2007大批量数据在Delphi 7底下导入SQL server 2008速度很慢的问题?

xiaojikun 2017-03-14 03:32:56
求助excel2007大批量数据在Delphi 7底下导入SQL server 2008速度很慢的问题,假设数据库表为TB1,三个字段为ID,NAME,TIME,现在要将excel表(列:ID,NAME,TIME)里面的数据导入到数据库中,如果ID已存在于数据库则更新它的TIME字段。各位有没有什么好的办法,因为数据量比较大(10W左右),用存储过程一个一个的判断导入速度很慢。
...全文
428 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiaojikun 2017-03-28
  • 打赏
  • 举报
回复
引用 4 楼 santiaodahan 的回复:
我用Excel建了一个10列10万行的表,试了一下导入Access数据库,不到5秒的时间。10万数据对SQL Server数据库根本就不是问题,除非有特别复杂的运算。
如果不进行判断更新,速度还可以接受,加了存在即更新的操作后,速度就不能接受了。
Mr Dang 2017-03-24
  • 打赏
  • 举报
回复
慢在读取excel,写入数据库,读取excel基本没有很好的办法就那速度,写入数据库可以使用事物会加速不少,先解决写数据库速度问题。注:提交事物硬盘IO才会动作,不使用事物插入一次硬盘IO动作1次插入10万条动作10万次,而事物只动作一次。
santiaodahan 2017-03-15
  • 打赏
  • 举报
回复
我用Excel建了一个10列10万行的表,试了一下导入Access数据库,不到5秒的时间。10万数据对SQL Server数据库根本就不是问题,除非有特别复杂的运算。
lyhoo163 2017-03-14
  • 打赏
  • 举报
回复
这个读取磁盘EXCEL文件数据,速度只能如此了。 一个思路,首先将ExCEl文件复制三份,三个线程,分别读取数据。 A线程从1到40000, B线程从40001到80000, C线程从80001到底。 还要参考线程占用CPU的比例,不能给CPU过量,否则不能加速的。 仅设想而已。
santiaodahan 2017-03-14
  • 打赏
  • 举报
回复
先把Excel导入SQL Server的一个临时表,然后再用存储过程处理其中的数据应该会快不少。
xiaojikun 2017-03-14
  • 打赏
  • 举报
回复
简单来说就是,对于excel中的数据如果ID已经存在则更新字段time,ID不存在则插入。

2,497

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧