优化查询时间。

runnerweb 2008-01-22 11:12:22

info表有8w条信息,最新通过审核(flag=1)的求购信息。。info_id 为自动增加字段,dateandtime为添加时间。格式:2008-08-08 24:00:00

select top 10 showname,company from info where info_id in (select max(info_id) as info_id from info group by company ) and flag=1 order by dateandtime desc



...全文
103 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
UltraBejing 2008-05-01
  • 打赏
  • 举报
回复
什么呀
knowledge_Is_Life 2008-04-30
  • 打赏
  • 举报
回复
关注 接分
dc1728 2008-01-22
  • 打赏
  • 举报
回复
少了一个表前缀,完整测试:
select top 10 info.showname,info.company from info,(select company,max(info_id) as info_id from info group by company) as Temp
where info.info_id= Temp.info_id and info.company = Temp.company order by dateandtime desc
dc1728 2008-01-22
  • 打赏
  • 举报
回复
用这个:这个语句表面逻辑上是扫描表两次,但是实际上优化器处理后只扫描了一次。
select top 10 showname,company from info,(select company,max(info_id) as info_id from info group by company) as Temp
where info.info_id= Temp.info_id and info.company = Temp.company order by dateandtime desc
pt1314917 2008-01-22
  • 打赏
  • 举报
回复
dateandtime
在时间上建个索引试试``
dawugui 2008-01-22
  • 打赏
  • 举报
回复
--估计差不多
select top 10 t.showname,t.company from info t where flag = 1 and info_id = (select max(info_id) as info_id from info where company = t.company) order by dateandtime desc

27,580

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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