问题描述
嗨,团队,
能否帮我分析一下下面的执行计划:
1.想知道执行的流程
2.排序唯一是INDEX_A或INDEX_B
问候,
克里希纳
能否帮我分析一下下面的执行计划:
-------------------------------------------------------------------------------------------------------- | Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time | -------------------------------------------------------------------------------------------------------- | 0 | SELECT STATEMENT | | | | 2437 (100)| | | 1 | NESTED LOOPS | | 2803 | 276K| 2437 (1)| 00:00:04 | | 2 | NESTED LOOPS | | 19745 | 276K| 2437 (1)| 00:00:04 | | 3 | SORT UNIQUE | | 109 | 872 | 2 (0)| 00:00:01 | | 4 | TABLE ACCESS BY INDEX ROWID| TABLE_A | 109 | 872 | 2 (0)| 00:00:01 | |* 5 | INDEX RANGE SCAN | index_A | 109 | | 1 (0)| 00:00:01 | |* 6 | INDEX RANGE SCAN | INDEX_B | 359 | | 1 (0)| 00:00:01 | |* 7 | TABLE ACCESS BY INDEX ROWID | TABLE_B | 26 | 2418 | 44 (0)| 00:00:01 | --------------------------------------------------------------------------------------------------------复制
1.想知道执行的流程
2.排序唯一是INDEX_A或INDEX_B
问候,
克里希纳
专家解答
顺序可以认为是这样的:
-我们扫描索引A以获取rowids (id 5)
-我们使用rowid访问表A中的某些行 (id 4)
-我们对这些结果进行了排序以获得唯一列表 (id 3)
-我们使用该数据查找索引B (id 6) 并获取rowid
-我们使用rowid查找表B (id 7)
-我们扫描索引A以获取rowids (id 5)
-我们使用rowid访问表A中的某些行 (id 4)
-我们对这些结果进行了排序以获得唯一列表 (id 3)
-我们使用该数据查找索引B (id 6) 并获取rowid
-我们使用rowid查找表B (id 7)
文章转载自ASKTOM,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。