您好,欢迎访问一九零五行业门户网

解读Oracle执行计划

解读oracle执行计划,对于oracle执行计划,并列的行从上往下执行,非并列的行,靠右的先执行。
本篇解释oracle执行计划中基本项的含义
关于生成和显示oracle执行计划的方法请阅读
下面举例进行解释
sql> explain plan for
  2  select a.name,b.name
  3  from t1 a,t2 b
  4  where a.id=b.id
  5  and a.id='1';
explained.
sql> set lines 200
sql> set pagesize 0
sql> select * from table(dbms_xplan.display());
plan hash value: 2680223496
--------------------------------------------------------------------------------------
| id  | operation                    | name  | rows  | bytes | cost (%cpu)| time    |
--------------------------------------------------------------------------------------
|  0 | select statement            |      |    1 |    20 |    5  (0)| 00:00:01 |
|  1 |  nested loops                |      |    1 |    20 |    5  (0)| 00:00:01 |
|  2 |  table access by index rowid| t1    |    1 |    10 |    1  (0)| 00:00:01 |
|*  3 |    index unique scan        | t1_pk |    1 |      |    0  (0)| 00:00:01 |
|*  4 |  table access full          | t2    |    1 |    10 |    4  (0)| 00:00:01 |
--------------------------------------------------------------------------------------
predicate information (identified by operation id):
---------------------------------------------------
  3 - access(a.id=1)
  4 - filter(b.id=1)
17 rows selected.
对于oracle执行计划,并列的行从上往下执行,非并列的行,靠右的先执行。
例如本例中:
id为3的操作最靠右,所以最先执行,其次是id为2和4的操作较靠右,而且并列,那么按照并列从上往下执行的原则,id为2的操作比id为4的操作先执行。
然后执行id为1的操作。
那么本例中执行计划按id排序为 3>2>4>1
---------------------------------------------------------------------------------------------------------------
本例中使用的dbms_xplay显示的执行计划,其中:
id:为每个操作的唯一序列号,
operation:为每个操作的名称和方式,,
name:是操作对象
rows:oracle估算当前操作影响的行数
bytes:oracle估算当前操作的影响的数据量(单位byte)
cost:oracle计算出来的执行该操作的代价
time:oracle估算出来的该操作花费的时间
其它类似信息

推荐信息