讨论一下select的效率问题

shooter1 2005-04-13 01:54:47
现遇到一个问题
如果select a.x , a.y,sum(isnull(b.x,0) )
from a,b
where a.id=b.id and a.time=b.time
group by a.x,a.y
需要漫长的时间。
但是如果
select a.x , a.y,sum(isnull(b.x,0) )
from a,b ,c,d
where a.id=b.id and a.time=b.time
and a.id=c.id and a.time=c.time
and a.id=d.id and a.time=d.time
group by a.x,a.y
会很快,为什么呢?
...全文
95 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
Well 2005-04-18
  • 打赏
  • 举报
回复
當然的了。
用group by 是熬時間
還有盡量使用distinct 可以代替group by 就代替 而不用group by
lovvver 2005-04-18
  • 打赏
  • 举报
回复
对你的数据结构存在疑问。
lishengyu 2005-04-18
  • 打赏
  • 举报
回复
比较一下结果哪个生成的记录数多
多的时间肯定要长点吗
shooter1 2005-04-18
  • 打赏
  • 举报
回复
还有其他的解释么?
talantlee 2005-04-13
  • 打赏
  • 举报
回复
select a.x , a.y,sum(isnull(b.x,0) )
from a,b
where a.id=b.id and a.time=b.time
group by a.x,a.y
就這條語句中,先把select a.x , a.y where a.id=b.id and a.time=b.time的內容查找出來
再執行sum(isnull(b.x,0) ) group by a.x,a.y語句
而下面以句,明顯數據量要小的多

34,590

社区成员

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

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