ITPub博客

首页 > 数据库 > Oracle > Oracle+高性能SQL引擎剖析:SQL优化与调优机制详解-笔记之执行计划(二)

Oracle+高性能SQL引擎剖析:SQL优化与调优机制详解-笔记之执行计划(二)

原创 Oracle 作者:nathanzhn 时间:2014-10-29 20:42:59 0 删除 编辑
第2章 解读执行计划
执行计划中的TempSpc/E-Temp,OMem,1Mem, Used-Mem, Used-Tmp之间有什么关系吗?我觉得看文字解释不太好理解,我做了个实验:
SQL> exec sql_explain('select * from t_objects order by 1,2,3,4,5,6,7,8', 'ADVANCED ALLSTATS LAST', FALSE);
before parse: select * from t_objects order by 1,2,3,4,5,6,7,8
SQL_ID  d1mc4vkc35231, child number 0
-------------------------------------
select * from t_objects order by 1,2,3,4,5,6,7,8
Plan hash value: 2389590244
--------------------------------------------------------------------------------------------------------------------
| Id  | Operation          | Name      | E-Rows |E-Bytes|E-Temp | Cost (%CPU)| E-Time   |  OMem |  1Mem | Used-Mem |
--------------------------------------------------------------------------------------------------------------------
|   0 | SELECT STATEMENT   |           |        |       |       |  1937 (100)|          |       |    |     |
|   1 |  SORT ORDER BY     |           |  73993 |  7009K|  9712K|  1937   (1)| 00:00:24 |    10M|  1275K| 9874K (0)|
|   2 |   TABLE ACCESS FULL| T_OBJECTS |  73993 |  7009K|       |   296   (1)| 00:00:04 |       |    |     |
--------------------------------------------------------------------------------------------------------------------
Query Block Name / Object Alias (identified by operation id):
-------------------------------------------------------------
1 - SEL$1
2 - SEL$1 / T_OBJECTS@SEL$1
理解其中的E-Temp, OMem, 1Mem, Used-Mem

E-row是CBO用统计信息估计的行数, 差不多就是cardinality. A-row --是这一步真正返回的行数 --row source
E-TEMP--是估计要使用的临时表空间。
The size of a work area can be controlled and tuned. Generally, bigger work areas  
can significantly improve the performance of a particular operator at the cost of 
higher memory consumption. Ideally, the size of a work area is big enough that it 
can accommodate the input data and auxiliary memory structures allocated by its 
associated SQL operator. This is known as the optimal size of a work area (e.g. 
a memory sort). When the size of the work area is smaller than optimal  
(e.g. a disk sort), the response time increases, because an extra pass is performed  
over part of the input data. This is known as the one-pass size of the work area.  
Under the one-pass threshold, when the size of a work area is far too small compared  
to the input data size, multiple passes over the input data are needed. This could  
dramatically increase the response time of the operator. This is known as the multi-pass  
size of the work area. 
optimal尺寸:SQL语句能够完全在所分配的SQL工作区内完成所有的操作。这时的性能最佳。
onepass尺寸:SQL语句需要与磁盘上的临时表空间交互一次才能够在所分配的SQL工作区中完成所有的操作。
multipass尺寸:由于SQL工作区过小,从而导致SQL语句需要与磁盘上的临时表空间交互多次才能完成所有的操作。这个时候的性能将急剧下降。
optimal -- OMem, 1-- one pass

我理解这个执行计划完成排序需要使用的空间一共是Used-Mem+TempSpc。
那接下来要做的实验就是把PGA大小扩大10M,再看看该执行计划是否还会有TempSpc的值。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/26521853/viewspace-1313803/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2014-01-23

  • 博文量
    49
  • 访问量
    263429