我把几万行UPDATE......(sql更新语句)用分号(;)连接起来,放在一个事务里面执行,结果有问题?请大家援手,在线等

zxn1979125 2004-07-07 09:00:29
我把几万行UPDATE......(sql更新语句)用分号(;)连接起来,放在一个事务里面执行,结果有问题?请大家援手,在线等
报错有:
1,失败,连接超时或服务器每有响应
2,事务不能在再使用
不知道有谁这样使用过,我用的数据库是SQL SERVER 2000,软件是B/S .NET
项目要求是这样的,把文本文件里的记录导入数据库,一个文本有几万条记录,数据库里随时间不断变大,一般也有十几万几十万的.我生成了一个大SQL语句,一次性插入(或更新)
我开始使用是没问题的,但当数据库里有了上十万条记录后,一次性导入几万条就报错了,还有个特点,就是如果是几万个INSERT....一起执行不报错,但几万个UPDATE就报错,
我的看法是与B/S,IE无关,因为无论成功与否所要的时间都是十几分钟(INSERT....更快),并且我跟踪过,生成SQL的过程没有错,当把SQL传给数据库后,才报错
...全文
442 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
ykwang 2004-07-07
  • 打赏
  • 举报
回复
做过存储过程,然后根据数据量的大小,分批提交,可以平均数量
CMIC 2004-07-07
  • 打赏
  • 举报
回复
无论成功与否所要的时间都是十几分钟
---------------------------------------
我觉得是SqlCommand和SqlConnection的连接时间溢出,
可以设置SqlCommand的
CommandTimeout = 0//无限大
和SqlConnection的Timeout试试
myConnection.ConnectionString = "Persist Security Info=False;Integrated Security=SSPI;database=northwind;server=mySQLServer;Connect Timeout=30";
无花林 2004-07-07
  • 打赏
  • 举报
回复
如果必须要几万条一起提交(事务)的话,是不是日志文件太小了,可把它设大点,增长也大点试试.
zhq3k 2004-07-07
  • 打赏
  • 举报
回复
强烈建议调用数据库的一个函数;BULK INSERT
langmafeng 2004-07-07
  • 打赏
  • 举报
回复
建议使用DataSet操作,用ms的SqlHelper类来把数据更新到DataBase中
xinshaw 2004-07-07
  • 打赏
  • 举报
回复
我也同意将间隔变小,每1000条提交
还有,如果可以的话,最好使用存储过程。
liulxmooo 2004-07-07
  • 打赏
  • 举报
回复
你一次在内存中保存上十万条记录,可能造成溢出,导致更新失败。
1979xt 2004-07-07
  • 打赏
  • 举报
回复
update语句执行中包括查找和更新两个过程,是比insert费时的。
建议每1000条提交一次,不要最后一大批才提交(commit)
---------------------------------------------------------
说的不错,有道理
jiezhi 2004-07-07
  • 打赏
  • 举报
回复
update语句执行中包括查找和更新两个过程,是比insert费时的。
建议每1000条提交一次,不要最后一大批才提交(commit)
bluefox168 2004-07-07
  • 打赏
  • 举报
回复
还是不行啊
报错:
"此sqltransaction以完成,它再也无法使用"

这是因为sql连接超时造成的吧?
你改这里的sqlconnection的连接时间了吗?
vzxq 2004-07-07
  • 打赏
  • 举报
回复
attention
lzyang 2004-07-07
  • 打赏
  • 举报
回复
还是存储过程吧
fengxin107 2004-07-07
  • 打赏
  • 举报
回复
定义存储过程吧,不论是否超时,时间都得很长啊。
forestyang 2004-07-07
  • 打赏
  • 举报
回复
使用Bulk Insert 或者 DTS
whxleem 2004-07-07
  • 打赏
  • 举报
回复
正在帮你想
hareqiqi 2004-07-07
  • 打赏
  • 举报
回复
注意几个地方的超时
1.数据库连接字符串里
2.sqlconnecton
3.sqlcommand
zxn1979125 2004-07-07
  • 打赏
  • 举报
回复
还是不行啊
报错:
"此sqltransaction以完成,它再也无法使用"
zxn1979125 2004-07-07
  • 打赏
  • 举报
回复
我先去试试,希望大家帮忙啊

62,025

社区成员

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

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

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

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