日期:2014-05-17  浏览次数:21127 次

删除sql数据库记录的速度突然变慢了....
以前都是好好的,现在记录多了后,用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都挺快的,这是出了什么问题。
------最佳解决方案--------------------
执行select语句,where条件和那个delete的时候一样,看需要多少时间,这个慢,应该是慢在单条记录的检索上面,可能需要添加索引
------其他解决方案--------------------
创建索引试试
------其他解决方案--------------------
直接删除一条数据呢  也是这么慢麽?   试一下看看
------其他解决方案--------------------
重启一下服务。
------其他解决方案--------------------
已经重启了哦,连电脑都重启过了
------其他解决方案--------------------
是不是sql在进行备份
------其他解决方案--------------------
不知道啊,自从出现问题后,就一直这样了,也有些天了。我再重启下电脑试试看吧

------其他解决方案--------------------
看不出什么,等大神指教。。。貌似耗时间的应该是select吧。怎么删除也延时了。。不懂。
------其他解决方案--------------------
还是不行,重启电脑后,还是慢的厉害。删一条记录要好长时间
------其他解决方案--------------------
以前用的是C#2008+sql2005,后又换了C#2012+sql2005,不行,又换了C#2012+sql2000,不行,再换为C#2008+sql2000,还是不行,慢。为啥删条记录这么慢
------其他解决方案--------------------
直接在sql的企业管理器里删除,有时候快,有时候慢
------其他解决方案--------------------
嗯,估计也是这样的,where条件较多,应该是实际上仍是先查询,再删除,所以慢了。建立了索引,要好些,但不是100%都快,有时候还是会慢,但快的次数要多了,谢谢大家哈。