执行这个时候有可能会循环两三百次update操作,----------------
从这个循环着手了.

解决方案 »

  1.   

    可能会循环两三百次update操作?? 看看这个是否可以进行优化更新?
    改为批量更新
    并看一下重建索引整理一下。并把不需要记录日志进行取消
    ...
      

  2.   

    请问高数,我的sql   server   一个表的数据量达到200W现在根据条件进行查询是并把查询出来的进行更新的时候出现超时,将怎么做给点建议。我的sql语句是:updaate     t_base_goods_decl   set   fee_flag=1   where   decl_no='441900000000'其中这个查询用的叫频繁并且decl_no为主键并且建立了索引。执行这个时候有可能会循环两三百次update操作,有时候出现超时。我的程序是delphi开发的。请问高手该怎么解决好。既然已经建立主键及相关索引,超时就是你SQL语句的问题了.
    不过才200万,应该是没问题的.我目前处理的两表,一为200万,一为2000万,两表联合查询,插入,更新未出现你的情况.
      

  3.   

    decl_no为主键
    where   decl_no='441900000000'既然 decl_no为主键 
    那么每次就更新一条数据 数据库对该数据进行的是 行级锁应该是你循环更新造成的问题 
    你循环更新修改下吧
      

  4.   

    你的语句有问题,丢上来,delphi程序也丢上来!
      

  5.   

      MainTable.First;
            while not MainTable.Eof do
            begin 
              SqlText:= 'update Base_t_goods_decl set  
              Fee_Flag=1,Note_No='''+Ser_No+''''+',Charge_Date='''+datetostr(chargefeedate)+''' 
              where DECL_NO='''+Decl_No+'''' ;
              ADOCmd.CommandText:=SqlText;
              ADOCmd.Execute;        
              MainTable.Next;
            end;
      MainTable.First;其中Decl_No为每条报检单号码。以上是delphi语句
      

  6.   

    大表。建议分表。否则到后来累计更多,还是会面临更多问题。===============================================
    powerbuilder11&SQL QQ群请加:6539042 
      

  7.   

    decl_no是主键?你的更新语句如何会运行几百次?就算是update,你有where语句,你就是1亿条数据也用不了几分钟,多半是你的delphi程序的其他部分的问题。
      

  8.   

    難怪,一個一兩百兆數據的BINGO系統就把我公司幾萬塊的SERVER拖死
    估計也是類似的處理方法吧,牛!