注册 登录
编程论坛 SQL Server论坛

SQLserver2000,delete from 语句,效率很低是什么原因

anxiaodong81 发布于 2019-08-21 17:52, 3641 次点击
QLserver2000,delete from 语句,效率很低是什么原因?
我先按条件查询,结果只有一条记录,然后select*直接改成delete,
结果就没有结果了,求求各位大神解惑


7 回复
#2
wufuzhang2019-08-21 23:04
“结果就没有结果了”是什么意思?
是执行select * from 表名字  没有结果吗?(这个应该不是)
还是执行delete后没有结果?(这个肯定没有结果了,因为你把满足条件的记录删除了)
#3
anxiaodong812019-08-22 08:18
不是,我是先查询定位有几条看看,然后删除,直接把select* 改成的delete,只有一条数据,删除执行的特别慢,老半天没结果
#4
icecool2019-08-22 09:10
不知道你所说的效率低没结果是什么意思,
你是在编写的程序中用语句操作的?还是直接在分析器中操作的?
在程序中操作,应该是你删除后的后续程序没表达清楚,
如果在分析器中直接语句操作的,那没反应就是结果,数据删完了当然不会有什么反应,状态档会提示有几条记录受到影响。
#5
wufuzhang2019-08-22 09:20
我一直不能理解你这句话“老半天没结果”?执行delete语句,就是将表中记录删除而已,哪会返回什么结果给你看。
delete就像一个没有返回值的函数,执行之后,你要再查询一遍,如果欲删除记录没了,说明执行成功。

至于执行特别慢,是不是你的表记录太多的缘故。

你看我下面执行的结果:

只有本站会员才能查看附件,请 登录
#6
anxiaodong812019-08-22 10:04
vb6中执行conn.execute strsql删除记录比较多,报错超时
再在查询分析器中执行试验,发现删除一条都老半天删不掉,没有结果的意思就是一直在运行delete语句,运行不完
数据库表中一共才7000多条记录
我删除别的表没毛病,把这个表改名,重新select into复制个同样的表名字叫这个表名,删除也可以。拿到vb一运行又是超时,在实验删除一条记录又不行了
#7
wufuzhang2019-08-22 11:43
你用的是SQLServer2000(好旧啊!),在SQLServer中操作也是“删除一条都老半天删不掉”,用VB代码操作,运行就报超时,说明问题
应该出在的SQLServer上面,你可以测试一下,表里就10条记录,还慢不慢?VB操作看还超不超时?
#8
sssooosss2020-07-29 14:56
共同学习
1