子查询或视图相关HINT
子查询或视图相关HINT
视图或子查询都涉及多表的连接,多表连接和子查询的执行计划有多种,可以根据语句的需要来使用这些HINT优化独立的查询:
.
|
PUSH_SUBQ |
让子查询尽可能早的执行。通常状态下(ORACLE 7.2或者以后的版本),子查询都在比较靠后的时候被执行。 |
|
NO_MERGE(v) |
如果在一个视图上设置该HINT,禁止子查询和父查询合并。如果在使用该视图的父查询中使用该提示,禁止该视图被合并。(>=7.2) |
|
MERGE(v) |
合并视图 |
|
MERGE_AJ(v) ) |
放在一个NOT IN子查询中,把一个子查询转为MERGE SORT(ANTI)模式去进行表连接操作 (>=7.3) |
|
HASH_AJ(v) ) |
类似上面,只是使用HASH连接 Eg: SELECT .. WHERE deptno is not null AND deptno NOT IN(SELECT /*+ HASH_AJ */ deptno ...) |
|
HASH_SJ(v) ) |
把 EXISTS子查询转为 HASH |
|
MERGE_SJ(v) } |
s把 EXISTS子查询转为MERGE |
|
PUSH_JOIN_PRED(v) |
把连接模式放入视图中 |
|
NO_PUSH_JOIN_PRED(v) |
不把连接模式放入视图中 |
浙公网安备 33010602011771号