日期:2014-05-16  浏览次数:20698 次

帮忙解释下执行计划吧
执行计划:观看执行次数和实际返回行数  
----------------------------------------------------------
| Id  | Operation          | Name | Starts | E-Rows | A-Rows |   A-Time   | Buffers | Reads  |
----------------------------------------------------------
|*  1 |  FILTER            |      |  49830 |        |     15 |00:00:39.89 |    5680K|      2 |
|   2 |   TABLE ACCESS FULL| T2   |  49830 |     37 |   1843K|00:00:07.89 |     149K|      0 |
|*  3 |   TABLE ACCESS FULL| T3   |   1843K|      1 |     15 |00:00:27.95 |    5531K|      2 |
|   4 |  TABLE ACCESS FULL | T1   |      1 |  49830 |  49830 |00:00:00.20 |    3546 |      0 |
----------------------------------------------------------

这里 Starts是执行次数,E-Rows是估算的返回行数,A-Rows是实际返回行数,对吗?
------最佳解决方案--------------------
一、执行计划中各字段的描述
   1、基本字段(总是可用的)
        Id                 执行计划中每一个操作(行)的标识符。如果数字前面带有星号,意味着将在随后提供这行包含的谓词信息
        Operation  对应执行的操作。也叫行源操作
        Name        操作的对象名称
  
   2、查询优化器评估信息
        Rows(E-Rows)      预估操作返回的记录条数
        Bytes(E-Bytes)       预估操作返回的记录字节数
        TempSpc                预估操作使用临时表空间的大小
        Cost(%CPU)          预估操作所需的开销。在括号中列出了CPU开销的百分比。注意这些值是通过执行计划计算出来的。换句话说,父操作的开销包含子操作的开销
        Time                        预估执行操作所需要的时间(HH:MM:SS)
  
   3、分区(仅当访问分区表时下列字段可见)
        Pstart      访问的第一个分区。如果解析时不知道是哪个分区就设为KEY,KEY(I),KEY(MC),KEY(OR),KEY(SQ)
        Pstop      访问的最后一个分区。如果解析时不知道是哪个分区就设为KEY,KEY(I),KEY(MC),KEY(OR),KEY(SQ)
  
   4、并行和分布式处理(仅当使用并行或分布式操作时下列字段可见)
        Inst                在分布式操作中,指操作使用的数据库链接的名字
        TQ              &n