ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 谓词推进 PUSHED PREDICATE

谓词推进 PUSHED PREDICATE

原创 Linux操作系统 作者:flying_warrior 时间:2011-03-01 23:47:51 0 删除 编辑

 

UNION ALL PUSHED PREDICATE

 

谓词前推。 讲谓词推进 UNION ALL 的操作中 可以通过index union 之前 访问表 减少 union filter 的成本.

 

回顾一下 这条优化 有一条重要的信息被遗漏了

 

UNION ALL PUSHED PREDICATE

 

谓词前推。 将谓词推进 UNION ALL 的操作中 可以通过index union 之前 访问表 减少 union filter 的成本.

 

加入/*+ use_nl(eu,sh) leading(eu,sh) */ sh.*,

 

这个hint的 初衷就是为了 先通过大幅度减少END_USER的查询 然后利用 SO等表上的end_user索引来进行减少逻辑读的操作。

 

但是如果没有谓词推进的话  那么整个执行的成本将会大幅上升  一定是先通过索引取得记录 并通过filter 得到想要的结果。

 

这个新特性是10G之后放出的  10G截止到11GR2 依旧有BUG  会出现 UNION ALL 得不到正确的数据情况 我们可以通过HINT disable它。

/*+ no_push_pred(v2) */

同样可以用

PUSH_PRED开启它。

 

现在来点新花样  check this out:

_pre_rewrite_push_pred : push predicates into views before rewrite                        
_push_join_predicate : enable pushing join predicate inside a view                   
_push_join_union_view : enable pushing join predicate inside a union view 
 
如果你ALTER SESSION 开启了他
 
那么不需要 PUSH_PRED hint  也会使用它。

 

====================================================================

下面这个执行计划的意思的关键是 这个 JF 的view

 

是一个ORACLE 转化过程 意思是   A join  B union A join

THEN  转换到  A join B UNION C

 

VIEW                          | VW_JF_SET$9BAED2EA            |     1 |   320 |     4   (0)| 00:00:01 |

|   4 |    UNION ALL PUSHED PREDICATE   |                               |       |       |            |          |

|*  5 |     FILTER                      |                               |       |       |            |          |

|   6 |      TABLE ACCESS BY INDEX ROWID| MTL_SECONDARY_INVENTORIES     |     3 |   336 |     2   (0)| 00:00:01 |

|*  7 |       INDEX RANGE SCAN          | IDX_MTL_SECONDARY_INVENTORIES |     1 |       |     1   (0)| 00:00:01 |

|*  8 |     FILTER                      |                               |       |       |            |          |

|   9 |      TABLE ACCESS BY INDEX ROWID| MTL_SECONDARY_INVENTORIES     |     3 |    36 |     2   (0)| 00:00:01 |

|* 10 |       INDEX RANGE SCAN          | IDX_MTL_SECONDARY_INVENTORIES |     1 |       |     1   (0)| 00:00:01 |

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/21818314/viewspace-693192/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2009-06-21

  • 博文量
    49
  • 访问量
    78939