天空

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

子查询或视图相关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)   

不把连接模式放入视图中

 

posted on 2010-06-07 15:27  天空-天空  阅读(314)  评论(0)    收藏  举报