数据库中SQl执行计划--01

执行计划说明:
call     count       cpu    elapsed       disk      query    current        rows
------- ------  -------- ---------- ---------- ---------- ----------  ----------
Parse        1      0.00       0.00          0          0          0           0
Execute      1      0.00       0.00          0          0          0           0
Fetch        1    140.64     921.65     286181    7035288          0           1
------- ------  -------- ---------- ---------- ---------- ----------  ----------
total        3    140.64     921.66     286181    7035288          0           1

Misses in library cache during parse: 0
Optimizer mode: ALL_ROWS
Parsing user id: 86  (APPS)
Number of plan statistics captured: 1

Rows (1st) Rows (avg) Rows (max)  Row Source Operation
---------- ---------- ----------  ---------------------------------------------------
         1          1          1  SORT AGGREGATE (cr=7035288 pr=286181 pw=0 time=921659252 us)
         1          1          1   PARTITION LIST SINGLE PARTITION: KEY KEY (cr=7035288 pr=286181 pw=0 time=921659238 us cost=3 size=39 card=1)
         1          1          1    TABLE ACCESS BY LOCAL INDEX ROWID XLA_TRANSACTION_ENTITIES PARTITION: 9 9 (cr=7035288 pr=286181 pw=0 time=921659220 us cost=3 size=39 card=1)
  30222127   30222127   30222127     INDEX SKIP SCAN XLA_TRANSACTION_ENTITIES_U1 PARTITION: 9 9 (cr=115720 pr=52531 pw=0 time=151161817 us cost=3 size=0 card=14612220)(object id 5888403)

Rows     Execution Plan
-------  ---------------------------------------------------
      0  SELECT STATEMENT   MODE: ALL_ROWS
      1   SORT (AGGREGATE)
      1    PARTITION LIST (SINGLE) PARTITION:KEYKEY
      1     TABLE ACCESS   MODE: ANALYZED (BY LOCAL INDEX ROWID) OF 
                'XLA_TRANSACTION_ENTITIES' (TABLE) PARTITION: START=9 STOP=9
30222127      INDEX   MODE: ANALYZED (SKIP SCAN) OF 
               'XLA_TRANSACTION_ENTITIES_U1' (INDEX (UNIQUE)) PARTITION: 
                 START=9 STOP=9

call     count       cpu    elapsed       disk      query    current        rows
------- ------  -------- ---------- ---------- ---------- ----------  ----------
Parse        1      0.00       0.00          0          0          0           0
Execute      1      0.00       0.00          0          0          0           0
Fetch        1    140.64     921.65     286181    7035288          0           1
------- ------  -------- ---------- ---------- ---------- ----------  ----------
total        3    140.64     921.66     286181    7035288          0           1


说明:第一段落,展示了所执行SQL的文件。接着是一个包含统计信息的表格。
count:每个类型调用发生的次数。
cpu:所需的CPU时间(单位为秒)。
elapsed:所需的时间消耗(单位为秒)。
disk:所需要的磁盘读取的数量。
query、current:查询模式和当前模式缓存的数据。查询模式读取的块,通常是由一致读取的查询产生。而当前模式读取的块,通常来自自己存在块的变更。它们可以称为逻辑读。
rows:处理记录的条数。
Parse:进行解析,这一步会检查SQL语句的语法、对象的有效性及权限。接着由优化器确定这条语句的执行计划。
Execute:进行执行。SQL语句在这一步执行,如果是查询语句的话,则为第一次的提取操作做准备。对于有些查询(比如含有 for update的语句或执行排序的语句),系统会在这一步就检索出每一条记录。
Fetch:进行提取。查询语句从这里返回记录。
total:是对上面的一个总数的计算。

从这个表格当中,我们可以得到一些重要的比率,如下:
在fetch行中,块读取数据(query+current)与获取的记录数据(rows)的比率。这是查询语句的相对开销的一个粗略指标。返回一定数量的记录时,要访问的内存块越多,每条记录就显得越可贵。
在count列中,解析次数(Parse)与执行次数(Execute)的比率。在理想的情况下,<解析次数?>应接近于1。如果解析次数相对于执行次数来讲显得较高,那么,就表明这条语句在执行没有必要的重解析。
在fetch行中,提取记录数(rows)与提取次数(count)的比率。它表明数组提取机制使用的级别。
在total行中,磁盘读取数(disk)与逻辑读取数(query+current)的比率。它表明数据库缓存区高速缓存的命中率。

第一次执行计划:
Misses in library cache during parse: 0
Optimizer mode: ALL_ROWS
Parsing user id: 86  (APPS)
Number of plan statistics captured: 1

Rows (1st) Rows (avg) Rows (max)  Row Source Operation
---------- ---------- ----------  ---------------------------------------------------
         1          1          1  SORT AGGREGATE (cr=7035288 pr=286181 pw=0 time=921659252 us)
         1          1          1   PARTITION LIST SINGLE PARTITION: KEY KEY (cr=7035288 pr=286181 pw=0 time=921659238 us cost=3 size=39 card=1)
         1          1          1    TABLE ACCESS BY LOCAL INDEX ROWID XLA_TRANSACTION_ENTITIES PARTITION: 9 9 (cr=7035288 pr=286181 pw=0 time=921659220 us cost=3 size=39 card=1)
  30222127   30222127   30222127     INDEX SKIP SCAN XLA_TRANSACTION_ENTITIES_U1 PARTITION: 9 9 (cr=115720 pr=52531 pw=0 time=151161817 us cost=3 size=0 card=14612220)(object id 5888403)
第一次执行计划来自于语句关闭时存储在跟踪文件中的信息。这个执行计划不是由EXPLAIN PLAIN命令执行出来的,它代表了实际执行时的执行计划。
参数说明如下:
cr:表明这一步中,处理的逻辑块读取的数据。
pr:表明这一步中,处理物理块的读取的数据。
pw:表明这一步中,物理块的写的数量。
time:这一步所消耗的微秒数。
cost:这一步对应的优化成本。
size:处理的字节数。
card:处理的记录数。

第二次的执行计划则是由tkprof工具中的explain命令得出来的。
Rows     Execution Plan
-------  ---------------------------------------------------
      0  SELECT STATEMENT   MODE: ALL_ROWS
      1   SORT (AGGREGATE)
      1    PARTITION LIST (SINGLE) PARTITION:KEYKEY
      1     TABLE ACCESS   MODE: ANALYZED (BY LOCAL INDEX ROWID) OF 
                'XLA_TRANSACTION_ENTITIES' (TABLE) PARTITION: START=9 STOP=9
30222127      INDEX   MODE: ANALYZED (SKIP SCAN) OF 
               'XLA_TRANSACTION_ENTITIES_U1' (INDEX (UNIQUE)) PARTITION: 
                 START=9 STOP=9
第二次的执行计划则是由tkprof工具中的explain命令得出来的。

 

猜你喜欢

转载自wkf41068.iteye.com/blog/1934083
今日推荐