Oracle语句执行顺序及优化
程序员文章站
2022-11-30 17:48:54
一、执行顺序需要明确:以下每个步骤都会产生一张虚拟表,然后通过某种条件转入下一步骤(8) SELECT (9) DISTINCT (11) (1) FROM (3) JOIN (2) ON (4) WHERE
一、执行顺序
需要明确:以下每个步骤都会产生一张虚拟表,然后通过某种条件转入下一步骤
(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
本文地址:https://blog.csdn.net/weixin_43646427/article/details/107322325
下一篇: orcl创建定时任务,定时新增,删除数据