no_use_hashsp¶
用在子查询中,确定子查询不使用hashed subplan。
举例:
-- 清理环境
DROP TABLE c CASCADE;
-- 创建表
create table c(c1 int, c2 int);
-- 使用no_use_hashsp
explain select * from c where c1 in (select /*+ no_use_hashsp*/ c2 from c limit 1) or c2 > 0;
QUERY PLAN(text)
----------------------
Seq Scan on C (cost=0.00..141.12 rows=5461 width=8)
Filter: ((C2 > 0) OR (subplan))
SubPlan
-> Materialize (cost=0.01..0.01 rows=1 width=4)
-> Limit (cost=0.00..0.01 rows=1 width=4)
-> Seq Scan on C (cost=0.00..89.92 rows=1 width=4)
总数目:6
-- 不使用no_use_hashsp
explain select * from c where c1 in (select c2 from c limit 1) or c2 > 0;
QUERY PLAN(text)
----------------------
Seq Scan on C (cost=0.00..151.36 rows=5461 width=8)
Filter: ((C2 > 0) OR (hashed subplan))
SubPlan
-> Limit (cost=0.00..0.01 rows=1 width=4)
-> Seq Scan on C (cost=0.00..89.92 rows=1 width=4)
总数目:5
-- 删除表
DROP TABLE c CASCADE;