嵌套循环连接,哈希连接,排序合并连接(2015-2-4学习日记)

==>>嵌套循环连接,哈希连接,排序合并连接

-->>嵌套循环连接

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的连接条件,但是支持>或<的连接。

posted @ 2016-02-04 14:28  三鹿专供  阅读(1046)  评论(0编辑  收藏  举报