欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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