no_use_mergeview

用在视图中,确定该视图不被合并到父查询中。

举例:

--  清理环境
DROP TABLE a CASCADE;
DROP TABLE b CASCADE;

--  创建表
CREATE TABLE a(a1 INT, a2 INT);
CREATE TABLE b(b1 INT, b2 INT);


explain select * from a, (select /*+ no_use_mergeview */ b1 from b) T1
    where a.a1 =T1.b1;
QUERY PLAN(text)      
----------------------
Merge Join(Inner Join)  (cost=1244.80..6318.92 rows=335544 width=12)
  Merge Cond: ("outer".A1 = "inner".B1)
  ->  Sort  (cost=622.40..642.88 rows=8192 width=8)
        Sort Key: A1
        ->  Seq Scan on A  (cost=0.00..89.92 rows=8192 width=8)
  ->  Sort  (cost=622.40..642.88 rows=8192 width=4)
        Sort Key: B1
        ->  Subquery Scan T1  (cost=0.00..89.92 rows=8192 width=4)
              ->  Seq Scan on B  (cost=0.00..89.92 rows=8192 width=4)
总数目:9

--  删除表
DROP TABLE a CASCADE;
DROP TABLE b CASCADE;