ordered_predicates

用在查询中,确定谓词条件按照用户书写的顺序排序。

举例:

--  清理环境
DROP TABLE a CASCADE;

--  创建表
CREATE TABLE a(a1 INT, a2 INT,a3 INT);

insert into a values(4,4,9);
insert into a values(3,3,9);
insert into a values(2,5,9);
insert into a values(2,2,9);
insert into a values(4,4,9);
insert into a values(3,3,9);
insert into a values(2,5,9);
insert into a values(2,2,9);


--  使用ordered_predicates
explain select /*+ ordered_predicates*/ * from a where mod(a2, 2) > 1 and mod(a3, 3) = 0;
QUERY PLAN(text)      
----------------------
Seq Scan on A  (cost=0.00..171.84 rows=14 width=12)
  Filter: (("MOD"(A2, 2) > 1) AND ("MOD"(A3, 3) = 0))
总数目:2


--  不使用ordered_predicates
explain select * from a where mod(a2, 2) > 1 and mod(a3, 3) = 0;
QUERY PLAN(text)      
----------------------
Seq Scan on A  (cost=0.00..171.84 rows=14 width=12)
  Filter: (("MOD"(A3, 3) = 0) AND ("MOD"(A2, 2) > 1))
总数目:2

--  删除表
DROP TABLE a CASCADE;