==>>嵌套循环连接,哈希连接,排序合并连接
-->>嵌套循环连接
select * from /*+leading(t1) use_nl(t2)*/ from t1,t2
where t1.id=t2.t1_id
and t1.n=19;
这个HINT的含义:leading(t1)表示强制先访问表t1,use_nl表示强制使用嵌套循环连接方式。
表t1是驱动表,在驱动表的限制条件(t1.n=19)上加索引,加快t1的搜索速度;t2表是被驱动表,在t2的连接条件(t1.id=t2.t1_id)字段t1id上加索引,加快t2的搜索速度。
-->>哈希连接
在PGA中的HASH_ARAE_SIZE
select * from /*+leading(t1) use_hash(t2)*/ from t1,t2
where t1.id=t2.t1_id;
哈希连接不支持不等值连接<>,不支持>和不支持<的连接方式,也不支持like的连接方式。
-->>排序合并连接
在PGA中SORT_AREA_SIZE
select /*+orderd use_merge(t2)*/ * from t1,t2
where t1.id=t2.t1_id;
排序合并连接没有驱动与被驱动的概念。
排序合并连接不支持<>,like的连接条件,但是支持>或<的连接。