怎样优化我这个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字段
增加索引,但在事件探察器里看来没有任何效果。
请大家提些建议好吗?
...全文
70 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
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都加索引

34,837

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧