怎样优化我这个SQL语句?

bjzhanghao 2003-05-17 02:05:44
我有一个存储过程,参数是两个日期,他统计这两个日期里
每一天的一些数值。现在我统计一个月的数据要花30秒左右,
太慢了,在网页里经常超时。
其中用到了一个自定义函数,里面是这样的:
if(@dt=(select max(dt) from s_daystatus where dt<@df+1 and s_daystatus.
personid=@pid))
如果把这句里的条件改成1=1就快很多了,怎样改能得到正确
的结果同时提高速度呢?我试过给s_daystatus表的dt字段
增加索引,但在事件探察器里看来没有任何效果。
请大家提些建议好吗?
...全文
47 点赞 收藏 6
写回复
6 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
bjzhanghao 2003-05-17
谢谢大家,给personid加索引以后时间缩短到原来的1/3,有办法再快些吗?s_daystatus表里有大约2000条记录
回复
erigido 2003-05-17
同意
回复
bomber2001 2003-05-17
索引
回复
pengdali 2003-05-17
if (@dt=(select max(dt) from s_daystatus where personid=@pid and dt<@df+1))

对personid加索引可以提高很多速度
回复
blactte 2003-05-17
dt,personid上建立索引
回复
caiyunxia 2003-05-17
personid/dt都加索引
回复
相关推荐
发帖
MS-SQL Server
创建于2007-09-28

3.3w+

社区成员

MS-SQL Server相关内容讨论专区
申请成为版主
帖子事件
创建了帖子
2003-05-17 02:05
社区公告
暂无公告