orale执行计划如何看驱动表
orale执行计划怎么看驱动表
--5、下面看一下3个表的情况下,RBO如何选择驱动表
--***************************************************************************
--********************************************************************语句1
select a.dhao00,a.khdm00,c.khmc00,a.ywrq00,b.jydm00,b.sl0000
from xstddxx1 a,xstddxx2 b,khvkhda0 c
where a.dhao00=b.dhao00 and a.khdm00=c.khdm00;
已选择81583行。
已用时间: 00: 00: 02.03
Execution Plan
----------------------------------------------------------
0 SELECT STATEMENT Optimizer=RULE
1 0 TABLE ACCESS (BY INDEX ROWID) OF 'XSTDDXX2'
2 1 NESTED LOOPS
3 2 NESTED LOOPS
4 3 TABLE ACCESS (FULL) OF 'KHVKHDA0'
5 3 TABLE ACCESS (BY INDEX ROWID) OF 'XSTDDXX1'
6 5 INDEX (RANGE SCAN) OF 'XSTDDXX1_KHDM_INDEX' (NON-UNIQUE)
7 2 INDEX (RANGE SCAN) OF 'XSTDDXX2_DH_JY_PK' (UNIQUE)
我有看到有些资料是这样的写的:看连接和缩进,同级缩进排在下面的就是驱动表。
我认为是XSTDDXX1是驱动表请问下大家是不是这样的呢?
或者请教下怎么看此语句哪个是驱动表谢谢
------解决思路----------------------
驱动表这个概念已经过时了,现在 ORACLE 可以自行根据各个表(视图)和查询条件、排序列生成执行计划,和表的顺序没有关系了。
个人意见,欢迎讨论。
------解决思路----------------------
看执行计划,KHVKHDA0应该是驱动表,因为只有这个表被全表扫描了
驱动表是在使用多表嵌套连接时,会先全表扫描该驱动表,然后驱动表返回的结果集中一行一行去匹配被驱动表(可以利用索引)
--5、下面看一下3个表的情况下,RBO如何选择驱动表
--***************************************************************************
--********************************************************************语句1
select a.dhao00,a.khdm00,c.khmc00,a.ywrq00,b.jydm00,b.sl0000
from xstddxx1 a,xstddxx2 b,khvkhda0 c
where a.dhao00=b.dhao00 and a.khdm00=c.khdm00;
已选择81583行。
已用时间: 00: 00: 02.03
Execution Plan
----------------------------------------------------------
0 SELECT STATEMENT Optimizer=RULE
1 0 TABLE ACCESS (BY INDEX ROWID) OF 'XSTDDXX2'
2 1 NESTED LOOPS
3 2 NESTED LOOPS
4 3 TABLE ACCESS (FULL) OF 'KHVKHDA0'
5 3 TABLE ACCESS (BY INDEX ROWID) OF 'XSTDDXX1'
6 5 INDEX (RANGE SCAN) OF 'XSTDDXX1_KHDM_INDEX' (NON-UNIQUE)
7 2 INDEX (RANGE SCAN) OF 'XSTDDXX2_DH_JY_PK' (UNIQUE)
我有看到有些资料是这样的写的:看连接和缩进,同级缩进排在下面的就是驱动表。
我认为是XSTDDXX1是驱动表请问下大家是不是这样的呢?
或者请教下怎么看此语句哪个是驱动表谢谢
------解决思路----------------------
驱动表这个概念已经过时了,现在 ORACLE 可以自行根据各个表(视图)和查询条件、排序列生成执行计划,和表的顺序没有关系了。
个人意见,欢迎讨论。
------解决思路----------------------
看执行计划,KHVKHDA0应该是驱动表,因为只有这个表被全表扫描了
驱动表是在使用多表嵌套连接时,会先全表扫描该驱动表,然后驱动表返回的结果集中一行一行去匹配被驱动表(可以利用索引)