no_use_residual¶
用在子查询中,确定父查询与该子查询不通过Semi Residual Join连接。
举例:
-- 清理环境
DROP TABLE a CASCADE;
DROP TABLE b CASCADE;
-- 创建表
CREATE TABLE a(a1 INT, a2 INT);
CREATE TABLE b(b1 INT, b2 INT);
explain select /*+ no_use_residual*/ * from a where a.a1 in (
select b1 from b) or a.a2 in (select b1 from b);
QUERY PLAN(text)
----------------------
Seq Scan on A (cost=0.00..171.84 rows=6144 width=8)
Filter: ((hashed subplan) OR (hashed subplan))
SubPlan
-> Seq Scan on B (cost=0.00..89.92 rows=8192 width=4)
-> Seq Scan on B (cost=0.00..89.92 rows=8192 width=4)
总数目:5
-- 删除表
DROP TABLE a CASCADE;
DROP TABLE b CASCADE;