Connection sequence in the WHERE clause of Oracle performance optimization learning notes, oracle Performance Optimization
ORACLE uses the bottom-up sequence to parse the WHERE clause. According to this principle, the join between tables must be written before other WHERE conditions. The conditions that can filter out the maximum number of records must be written at the end of the WHERE clause.
For example:
(Inefficient, execution time: 156.3 seconds)
SELECT... From emp ewhere sal> 50000AND JOB = 'manager' AND 25 <(select count (*) from emp where mgr = E. EMPNO );
(Efficient, execution time: 10.6 seconds)
SELECT... From emp ewhere 25 <(select count (*) from emp where mgr = E. EMPNO) and sal> 50000AND JOB = 'manager ';
Note:
This article is taken from Baidu Library. The specific link is found. Sorry.
Sequential impact efficiency in the where condition in oracle
It will not be affected.
The recommended answer is wrong. I don't know what's going on!
The CBO optimizer is cost-effective.
Oracle automatically determines that a table with a high selection rate is used as the driving table for connection!
What is the execution sequence of the where clause in Oracle?
Executed from right to left