You execute the following query:
Which statement is true about the usage of these hints in the query?
A.
The optimizer pushes the join predicate into the inline view.
B.
The optimizer evaluates the subquery as a first and then filters out rows.
C.
The optimizer performs a join operation first and then filters out the rows.
D.
The hint will have no effect because one of the join resultsets is an inline view.
Explanation:
The PUSH_PRED hint forces pushing of a join predicate into the view.
For example:
SELECT /*+ NO_MERGE(v) PUSH_PRED(v) */ *FROM employees e,
(SELECT manager_id
FROM employees
) v
WHERE e.manager_id = v.manager_id(+)
AND e.employee_id = 100;
When the PUSH_PRED hint is used without an argument, it should be placed in the view query
block. When PUSH_PRED is used with the view name as an argument, it should be placed in the
surrounding query.
Reference: Oracle Database Performance Tuning Guide, PUSH_PRED
I think B
A correct: http://www.orafaq.com/tuningguide/hints.html