oracle多表关联执行顺序

[复制链接]
查看11 | 回复2 | 2009-1-16 01:01:08 | 显示全部楼层 |阅读模式
大家好,请教多表关联执行顺序问题,先行谢过

以3表关联为例:
到目前为止,只见过2种形式的3表关联
1. SELECT A.COL1

B.COL2

C.COL3

FROM A,B,C

WHEREA.COL1=B.COL1
ANDA.COL2=C.COL2
这种情况下:执行顺序是 A.COL1与B.COL1先关联出结果集合xxx,然后在用xxx与c表关联出最终结果集合。如果后面有更多的表,执行也是从 上一步结果集合与下一个表关联。
2.SELECTA.COL1

B.COL2

C.COL3
FROMA,B,C
WHEREA.COL1=B.COL1
AND B.COL2=C.COL1
这种情况下的执行关联顺序又是怎么样的呢?我在PL/SQL中看执行计划,也是先AB表做关联,关联出的结果集合在与C表进行关联。
还有其它形式的3表关联吗?
回复

使用道具 举报

千问 | 2009-1-16 01:01:08 | 显示全部楼层
你的优化器应该是CBO吧,这个顺序是系统评估得到的。
回复

使用道具 举报

千问 | 2009-1-16 01:01:08 | 显示全部楼层
嗯,
SQL> show parameter optimizer_mode;
NAME
TYPEVALUE
------------------------------------ ----------- ------------------------------
optimizer_mode
stringALL_ROWS
如果不用任何优化器会是什么样的顺序呢?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行