Oracle语句执行顺序及优化

一、执行顺序

需要明确:以下每个步骤都会产生一张虚拟表,然后通过某种条件转入下一步骤

(8) SELECT  (9) DISTINCT (11) <TOP_specification> <select_list> 
(1) FROM <left_table>  
(3) <join_type> JOIN <right_table> 
(2) ON <join_condition> 
(4) WHERE <where_condition> 
(5) GROUP BY <group_by_list> 
(6) WITH {CUBE | ROLLUP} 
(7) HAVING <having_condition> 
(10) ORDER BY <order_by_list>
-- 1-3 是解析全部表数据,通过on条件消除笛卡尔积,得到虚拟表t1
-- 4 是将t1的结果按where条件筛选,得出虚拟表t2
-- 5 是将t2进行分组,得到虚拟表t3
-- 6 目前不知道
-- 7 将分组后的结果集t3进行条件筛选,得到结果集t4
-- 8 筛选需要的字段,得到t5
-- 9 去掉重复行,得到t6
-- 10 进行排序,得到t7
-- 11 指定返回多少行,得到t8
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值