VC6中使用ADO对数据库进行UPDATE操作,出现超时的奇怪问题?循环进行UPDATE到100条左右时就会超时!

explosun 2007-01-24 08:01:41
程序的结构大概是这样:

for(int i=0;i<10000;i++)
{
cn.execute("update .... where id="+i);
sleep(1);
}


另一个线程以每秒2次的频率向同一个表中写记录。

此时写记录的线程没有任何问题,但是上面那个循环在执行100次左右的时候之后就全报超时,这是为什么??

程序的结构之所以设计成这样,是因为一次性UPDATE10000条数据的话会比较慢导致锁表。
该表所有记录为30000条
...全文
236 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
kuangdp 2008-06-06
  • 打赏
  • 举报
回复
难道那个循环就不锁表了?
强烈关注
skyboy0720 2008-06-06
  • 打赏
  • 举报
回复
楼主初衷考虑得很好,但是楼主为什么不考虑,把这个处理,放到数据库里去处理,避免超时.
对于你说的防止死锁,可以在数据库的循环处理中使用WAITFOR DELAY 的语句,一样可以达到效果.
tianhuo_soft 2008-06-06
  • 打赏
  • 举报
回复
30000条就慢

这个表怎么设计的 有多少字段

用的什么数据库??

但是上面那个循环在执行100次左右的时候之后就全报超时,这是为什么??
因为SQL有连接限制


程序的结构之所以设计成这样,是因为一次性UPDATE10000条数据的话会比较慢导致锁表。
更新的时候使用 table锁 就不会锁表了
因为在更新的时候有人在做 其他操作 冲突了
askyin 2007-01-24
  • 打赏
  • 举报
回复
关注

34,872

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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