暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Oracle 解释计划分析

ASKTOM 2018-11-28
156

问题描述

嗨,团队,

能否帮我分析一下下面的执行计划:

--------------------------------------------------------------------------------------------------------
| 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)
文章转载自ASKTOM,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论