请教下个循环数据插入的性能问题。。

guanpu28 2010-02-02 05:17:47
我有一个数据集DataSet 里面有2000行数据
1:循环2000次,循环里面调用(int i=1;i<=2000;i++)
DbHelperSQL.ExecuteSql("insert into A values(i,'bbbbbbbbbbbbb')");//会有2000个数据库连接对象


2:循环2000次,循环里面:
定义一个StringBuilder sb,用来装载
sb.Append("insert into A values(1,'bbbbbbbbbbbbb')");
sb.Append("insert into A values(2,'bbbbbbbbbbbbb')");
sb.Append("insert into A values(3,'bbbbbbbbbbbbb')");
.
..
...
sb.Append("insert into A values(2000,'bbbbbbbbbbbbb')");

循环外面最后再来个:DbHelperSQL.ExecuteSql(sb.ToString());

=====请问这2个哪个性能要优越,因为现在是做的一个多线程的数据库对导(ETL)过程,所以性能比较重要,请大家赐教。。。或者给出其他可行的思路,谢谢拉,要过年拉,我谢谢你,你明年就会长工资拉,哈哈。。。
...全文
106 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
guanpu28 2010-02-03
  • 打赏
  • 举报
回复
请高手指点下挖,等下就结了。。。
jack15850798154 2010-02-02
  • 打赏
  • 举报
回复
学习中。。。
guanpu28 2010-02-02
  • 打赏
  • 举报
回复
涨工资拉,年底发N薪拉,年终奖大大的米西米西的拉米死达。请大家给个思路,我要性能第1哦。。。大数据,多线程的数据复制过程。。。。
guanpu28 2010-02-02
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 huwei12345 的回复:]
取得command,带参数写好 insert sql,循环 给参数赋值,并执行
首先 开一个事务,2000条小意思,一个事务好了
[/Quote]
其实我一次只导1000条,但是问题是我有多个任务同时执行(多线程),20个任务一起跑就是20*1000条,那就是2W个ADO对象哦。。。。
huwei12345 2010-02-02
  • 打赏
  • 举报
回复
取得command,带参数写好 insert sql,循环 给参数赋值,并执行
首先 开一个事务,2000条小意思,一个事务好了
guanpu28 2010-02-02
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 wzp144650 的回复:]
第二个怎么运行?
[/Quote]
第2个,先拼凑和多条insert 语句啊,最后再DbHelperSQL.ExecuteSql(sb.ToString())就能把你所有的insert 语句全执行一次了,这样减少了ADO.NET对象的创建,只创建1个连接,性能貌似要好点,关于事务,一样是可以在sb里面拼凑出SQL脚本的
wzp144650 2010-02-02
  • 打赏
  • 举报
回复
第二个怎么运行?
guanpu28 2010-02-02
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 jxyxhz 的回复:]
第一种情况可以实现事务功能。

第二种不行。
[/Quote]
第2种的话,可以在sb里面再加上SQL事务相关的脚本,一样可以实现的。。。
小_虎 2010-02-02
  • 打赏
  • 举报
回复
我来试试。。
小_虎 2010-02-02
  • 打赏
  • 举报
回复
等等,我还真没想过,你这种拼接的多条sql语句能不能实现事务。。。

没试过。
ck11926375 2010-02-02
  • 打赏
  • 举报
回复

insert into table(id,name)
select 1,'zhangsan'
union
select 2,'lisi'
union
select 3,'wangwu'
小_虎 2010-02-02
  • 打赏
  • 举报
回复
当然,不是说你的第一种方法可以实现事务,而是多个Command可以实现事务。

小_虎 2010-02-02
  • 打赏
  • 举报
回复
第一种情况可以实现事务功能。

第二种不行。
guanpu28 2010-02-02
  • 打赏
  • 举报
回复
期待下班前能有人涨工资。。。

62,254

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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