------------------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
------------------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 15 | 1560 | 10 (10)| 00:00:01 |
| 1 | VIEW | | 15 | 1560 | 10 (10)| 00:00:01 |
| 2 | UNION-ALL | | | | | |
| 3 | NESTED LOOPS OUTER | | 14 | 784 | 4 (0)| 00:00:01 |
| 4 | TABLE ACCESS FULL | EMP | 14 | 518 | 3 (0)| 00:00:01 |
| 5 | TABLE ACCESS BY INDEX ROWID| DEPT | 1 | 19 | 1 (0)| 00:00:01 |
|* 6 | INDEX UNIQUE SCAN | PK_DEPT | 1 | | 0 (0)| 00:00:01 |
| 7 | MERGE JOIN ANTI | | 1 | 22 | 6 (17)| 00:00:01 |
| 8 | TABLE ACCESS BY INDEX ROWID| DEPT | 4 | 76 | 2 (0)| 00:00:01 |
| 9 | INDEX FULL SCAN | PK_DEPT | 4 | | 1 (0)| 00:00:01 |
|* 10 | SORT UNIQUE | | 14 | 42 | 4 (25)| 00:00:01 |
| 11 | TABLE ACCESS FULL | EMP | 14 | 42 | 3 (0)| 00:00:01 |
------------------------------------------------------------------------------------------
不同数据库版本输出的东西是不一样的。
COST:CBO在执行查询的时候会为执行计划的每一步估计一个成本值,通常CBO会 生成多个执行计划,从中选成本最小的来执行
CARD:是基数的缩写,这是对执行计划中每一步的输出记录数做的一个估计值,比如全表扫描EMP表这一步估计它的输出行数是14行。事实上EMP表总共也只有14行。
BYTES:对于执行计划的每一步,CBO会对它们估计一个返回数据量的大小值,单位是BYTE.
如果说一个执行计划中以上3个指标都没有出现,那么可以肯定该执行计选用的优化器不是CBO,是RBO
recursive calls:为了执行当前的SQL语句,ORACLE需要执行SQL语句的数量。英文翻译为递归调用
db block gets:从当前模式中的缓存区域中读取块的总数量
consistent gets:一致性读的次数,一致性读需要在缓冲区中申请块。一致性读也可能要去读取UNDO中的信息,读UNDO的次数也要计算在一致性读中。
physical reads:物理读的次数,从数据文件到缓冲区
redo size:执行语句期间产生的REDO的大小,单位为BYTES.
bytes sent via SQL*Net to client:从服务器发给客户端的字节数量
bytes received via SQL*Net from client:从客户端接收的字节数量
SQL*Net roundtrips to/from client:发给客户端和从客户端接收的SQL*NET信息,这包含了往返的信息从一个多行结果集中【this includes round-trips for fetchs from a multiple-row result set】
sorts (memory):代表在用户会话中进行的排序,它由SORT_AREA_SIZE参数控制
sorts (disk):当排序的大小超出了用户的排序大小所能承受的最大值时,会在磁盘上进行排序,这里说的磁盘通常指的是临时表空间。
rows processed:修改处理或者SELECT语句返回的行数
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
------------------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 15 | 1560 | 10 (10)| 00:00:01 |
| 1 | VIEW | | 15 | 1560 | 10 (10)| 00:00:01 |
| 2 | UNION-ALL | | | | | |
| 3 | NESTED LOOPS OUTER | | 14 | 784 | 4 (0)| 00:00:01 |
| 4 | TABLE ACCESS FULL | EMP | 14 | 518 | 3 (0)| 00:00:01 |
| 5 | TABLE ACCESS BY INDEX ROWID| DEPT | 1 | 19 | 1 (0)| 00:00:01 |
|* 6 | INDEX UNIQUE SCAN | PK_DEPT | 1 | | 0 (0)| 00:00:01 |
| 7 | MERGE JOIN ANTI | | 1 | 22 | 6 (17)| 00:00:01 |
| 8 | TABLE ACCESS BY INDEX ROWID| DEPT | 4 | 76 | 2 (0)| 00:00:01 |
| 9 | INDEX FULL SCAN | PK_DEPT | 4 | | 1 (0)| 00:00:01 |
|* 10 | SORT UNIQUE | | 14 | 42 | 4 (25)| 00:00:01 |
| 11 | TABLE ACCESS FULL | EMP | 14 | 42 | 3 (0)| 00:00:01 |
------------------------------------------------------------------------------------------
不同数据库版本输出的东西是不一样的。
COST:CBO在执行查询的时候会为执行计划的每一步估计一个成本值,通常CBO会 生成多个执行计划,从中选成本最小的来执行
CARD:是基数的缩写,这是对执行计划中每一步的输出记录数做的一个估计值,比如全表扫描EMP表这一步估计它的输出行数是14行。事实上EMP表总共也只有14行。
BYTES:对于执行计划的每一步,CBO会对它们估计一个返回数据量的大小值,单位是BYTE.
如果说一个执行计划中以上3个指标都没有出现,那么可以肯定该执行计选用的优化器不是CBO,是RBO
recursive calls:为了执行当前的SQL语句,ORACLE需要执行SQL语句的数量。英文翻译为递归调用
db block gets:从当前模式中的缓存区域中读取块的总数量
consistent gets:一致性读的次数,一致性读需要在缓冲区中申请块。一致性读也可能要去读取UNDO中的信息,读UNDO的次数也要计算在一致性读中。
physical reads:物理读的次数,从数据文件到缓冲区
redo size:执行语句期间产生的REDO的大小,单位为BYTES.
bytes sent via SQL*Net to client:从服务器发给客户端的字节数量
bytes received via SQL*Net from client:从客户端接收的字节数量
SQL*Net roundtrips to/from client:发给客户端和从客户端接收的SQL*NET信息,这包含了往返的信息从一个多行结果集中【this includes round-trips for fetchs from a multiple-row result set】
sorts (memory):代表在用户会话中进行的排序,它由SORT_AREA_SIZE参数控制
sorts (disk):当排序的大小超出了用户的排序大小所能承受的最大值时,会在磁盘上进行排序,这里说的磁盘通常指的是临时表空间。
rows processed:修改处理或者SELECT语句返回的行数