求助:关于left join ,group by 及子查询的效率问题

dbjian 2007-08-23 11:30:14
一:from子句中过滤数据后left join 跟 先left join后过滤数据的执行效率比较;
分别举例如下:

test1:
select t1.emp_no,t1.emp_name,t2.dep_no,t2.dep_name
from (
select t.emp_no,t.emp_name,t.dep_no
from employee
where t.emp_no < 80707999
) t1
left join department t2 on t1.dep_no = t2.dep_no

test2:
select t1.emp_no,t1.emp_name,t2.dep_no,t2.dep_name
from employee t1
left join department t2 on t1.dep_no = t2.dep_no
where t1.emp_no < 80707999

二:from子句中先Group by 分组后 left join 跟 先leftjoin 后group by 的执行效率比较;分别举例如下:

test1:
select t2.dep_no,t2.dep_name,t1,empCount,t2.empAvgAge
from(
select t.dep_no, count(t.emp_no) as empCount, avg(t.emp_age) empAvgAge,
from employee t
where t.emp_no < 80707999
group by t.dep_no
)t1
left join department t2 on t1.dep_no=t2.dep_no

test2:
select t2.dep_no,t2.dep_name,count(t1.emp_no) as empCount, avg(t1.emp_age) empAvgAge
from employee t1
left join department t2 on t1.dep_no=t2.dep_no
where t1.emp_no < 80707999
group by t2.dep_no,t2.dep_name

请问一、二中的两句sql分别哪一句效率高??

因本人没有现成的大量数据进行测试且自信心不足,请高手们根据经验给与指点,谢谢!
...全文
957 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
亥亥 2009-02-03
  • 打赏
  • 举报
回复
个人试验Group by 分组后 要快于子查询~

17,086

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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