SQL SELECT语句执行的完整顺序:
1,从子句组装来自不同数据源的数据。
2,WHERE子句是根据指定的条件选择的。
3,按组子句将数据分成多个组。
4。聚合函数用于计算。
5,使用带子句来筛选组;
6。计算所有表达式;
7,使用顺序对结果集进行排序。

一种利用oracle语句提高查询效率的方法
1:..其中的列(选择*)…在……);
2:…在存在(select'x'from…在……);
第二格式比第一个更有效。在甲骨文中,它是可能的修改几乎所有的子查询作为子查询运算符使用存在
与存在,Oracle系统将首先检查主查询,然后运行查询直到找到第一个匹配,从而节省了时间
在Oracle系统中执行的子查询,它首先执行子查询和存储的结果列表中的索引临时表的结果。

选择最有效的表名称顺序(仅在基于规则的优化器中有效)
Oracle解析器处理的表名FROM子句中从右到左,所以在FROM子句中的最后一句话(基表驱动表)将首先处理。在多个表的FROM子句中,你必须选择一个条目数量最少的表当基表。当Oracle处理多个表,它们通过排序和归并连接。首先,扫描第一个表(FROM子句中的最后一个)和记录的记录,然后扫描二表(FROM子句中的表的最后一秒),最后合并记录从二表的第一个表中的相应记录。
如果有超过3个表连接查询,我们需要选择交叉表(交集表)作为基表,而交叉表是指其他表引用的表。

WHERE子句中的连接顺序
Oracle使用自底向上序列解析WHERE子句。根据这个原则,表之间的连接必须写在其他条件之前。可以筛选出最多记录数的条件必须写在WHERE子句的结尾处。