Oracle语句执行顺序
查询语句的执行顺序按下列子句次序:
- from 子句,执行顺序为从后往前,从右到左。
- 数据量较少的表尽量放在后面。
- where 子句,执行顺序为从下往上,从右到左。
- 将能过滤掉最大数量记录的条件写在Where 子句的最右。
- group by:执行顺序从左往右分组。
- 最好在group by 前使用 where 将不需要的记录在group by 之前多滤掉。
- having 子句:消耗资源。
- 尽量避免使用,having会在检索出所有记录之后才对结果集进行过滤,需要排序等操作。
- select 子句:少用*号,尽量取字段名称。
- oracle在解析的过程中,通常查询数据字典将*号依次转换成所有的列名,消耗时间。
- order by子句: 执行顺序为从左到右排序,消耗资源。