以前都是好好的,现在记录多了后,用C#执行sql数据库的删除命令速度突然慢了好多。开始以为是数据库数据多了,一查只有20多万行,又怀疑是带宽的问题,就把数据库和程序放在一台电脑上,还是慢。后来直接在sql数据库里操作删除命令,竟然也是慢,这是怎么回事了。我的C#语句如下
string strsql = "delete from Tg where 日期='" + datDate.ToString("yyyyMMdd") + "' and name='" + fcer[i].strName + "' and 地点='" + fcer[i].strStation + "' and 时效='" + (j * 24).ToString("000") + "' and 时间='" + fcer[i].strSC + "'";
SqlCommand delcmd = new SqlCommand(strsql1, sqlcon);
delcmd.ExecuteNonQuery();
就是执行delcmd.ExecuteNonQuery()命令时,速度非常慢,符合条件的只有一条记录,但要删除这条记录要执行5、6秒钟甚至更长,有时候会长到断开连接...。执行其他语句如select、insert都挺快的,这是出了什么问题。

解决方案 »

  1.   

    看不出什么,等大神指教貌似耗时间的应该是select吧。怎么删除也延时了。。不懂。
      

  2.   

    以前用的是C#2008+sql2005,后又换了C#2012+sql2005,不行,又换了C#2012+sql2000,不行,再换为C#2008+sql2000,还是不行,慢。为啥删条记录这么慢
      

  3.   

    直接在sql的企业管理器里删除,有时候快,有时候慢
      

  4.   

    执行select语句,where条件和那个delete的时候一样,看需要多少时间,这个慢,应该是慢在单条记录的检索上面,可能需要添加索引
      

  5.   

    嗯,估计也是这样的,where条件较多,应该是实际上仍是先查询,再删除,所以慢了。建立了索引,要好些,但不是100%都快,有时候还是会慢,但快的次数要多了,谢谢大家哈。