欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2022-05-07 13:43:52
...
执行计划说明:
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命令得出来的。



					
相关标签: 执行计划