求ado.net (odp.net) 批量提交

沱沱河 2011-08-30 09:41:26
OracleDataReader reader = cmd.ExecuteReader();
while (reader.Read())
{
StringBuilder insertSql = new StringBuilder();
insertSql.Append("insert into ").Append( ...............拼的sql 语句

因为最后可能是数千万条insert 语句。 我想每20000一提交 commit 数据库。
求方法与语句。
...全文
140 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
萧炎 2011-08-30
  • 打赏
  • 举报
回复
那就用for循环撒
然后事物提交回滚
子夜__ 2011-08-30
  • 打赏
  • 举报
回复
批量提交可以用事务


PS:在到分 你就被封杀了。
qingYun1029 2011-08-30
  • 打赏
  • 举报
回复
ado.net好像有个执行批量sql语句的方法。。
DSIOF3KIDSKTR 2011-08-30
  • 打赏
  • 举报
回复
你这么大的数据量,感觉不像在产生业务数据,倒像是在数据迁移,数据量太大了,处理使用数据库层面的数据迁移外,应该没有什么好方法吧
DSIOF3KIDSKTR 2011-08-30
  • 打赏
  • 举报
回复
使用DataSet时,你的数据量这么大,可以多次填充DataSet,可以一次填充1000条然后提交,提交后清空DataSet,重新填充,提交……
DSIOF3KIDSKTR 2011-08-30
  • 打赏
  • 举报
回复
[Quote=引用楼主 tuotuoriver 的回复:]
OracleDataReader reader = cmd.ExecuteReader();
while (reader.Read())
{
StringBuilder insertSql = new StringBuilder();
insertSql.Append("insert into ")……
因为最后可能是数千万条insert 语句

[/Quote]

千万条sql?不是吓死人就是整死机器,千万使不得。
1.如果必须构造sql才能插入记录的话,尽量归并一下,不然这么多语句,就是什么都不做,执行一遍也很烦时间的
2.最好使用DataSet和CommandBuilder自动生成sql语句,通过UpdateBatchSize来确定每次提交多少条记录
老毕 2011-08-30
  • 打赏
  • 举报
回复
把所有操作扔在一个事务里,用循环进行insert,最后用事务提交
cjh200102 2011-08-30
  • 打赏
  • 举报
回复
用事物处理
wangjk_1987 2011-08-30
  • 打赏
  • 举报
回复
怎么会有这么多的数据了?楼主想要实现什么业务呢?
ken_flash 2011-08-30
  • 打赏
  • 举报
回复
ODP自己会判断处理的事物的,不用刻意使用事物实现--我记得以前看ODP帮助时是这么说的

110,561

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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