sql语句没变,sqlserver2005下sql语句越来越慢

我有数据1000万,select的语句是这样的:selecttop1000*fromtable1wherestatus=0select出来的数据处理完之后,会将statu... 我有数据1000万,
select的语句是这样的:select top 1000 * from table1 where status=0

select 出来的数据处理完之后,会将status=1,这样表明它已经被处理过了

刚开始挺快的,sql语句执行包括数据出来总共才1秒钟

处理到300万的时候,select需要30秒才能执行完,请问是什么原因导致select执行这么慢?
建索引了,但是我用测试计划,看见并没有用索引,奇怪
展开
 我来答
chn7576
2010-08-11 · TA获得超过1520个赞
知道小有建树答主
回答量:934
采纳率:0%
帮助的人:802万
展开全部
建索引了吧!!!

索引也可以理解为这个表的一条记录。

频繁更新的表,索引事务入口不足,会造成索引失效。

所以,像你这么频繁的更新记录,需要重建索引才行。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
闪闪红红星
2010-08-11 · TA获得超过924个赞
知道小有建树答主
回答量:613
采纳率:0%
帮助的人:382万
展开全部
肯定是没有索引,数据库要把所有记录都看一遍才能知道谁的status是0,数据量越大越慢。在status上建索引就好了。

至于怎么建索引请自行研究。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
shinepomo
2010-08-22
知道答主
回答量:7
采纳率:0%
帮助的人:0
展开全部
虽然你前面top 1000 后面写的status=0 是先 status=0 然后再top 1000
那样就是全表遍历.可以写个类似分页的存储过程.一次处理一段数据.这样会快点.至于速度会变慢.可能是因为没有索引的原因.百度百科上有篇文章.很经典.一时找不到了.你要的话.说下.我以前存为txt了的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ccc_sky
2010-08-11 · TA获得超过311个赞
知道小有建树答主
回答量:308
采纳率:0%
帮助的人:177万
展开全部
数据量太大了吧,最好是清掉一些数据!
如果没法清,优化下索引吧,加多一个或者建组合索引
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ruby_matlab
2010-08-11 · TA获得超过908个赞
知道小有建树答主
回答量:395
采纳率:0%
帮助的人:241万
展开全部
因为你没有建立索引,create index
索引用的是hash,为status建个索引试试吧。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式