ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 执行计划的执行顺序精解(3)

执行计划的执行顺序精解(3)

原创 Linux操作系统 作者:www_xylove 时间:2013-08-04 11:24:21 0 删除 编辑

具体分析一下每一步都做了些什么:

摘录执行计划部分内容,用来分析

Id  | Operation                    | Name        Starts     E-Rows A-Rows

0 | SELECT STATEMENT              |             |      1 |            6

1 |  HASH JOIN                     |             |       1 |     6

2 |   NESTED LOOPS                 |             |      1 |      6

3 |    NESTED LOOPS                |             |      1 |      1

4 |     TABLE ACCESS BY INDEX ROWID| DEPARTMENTS |1 |      1

5 |      INDEX UNIQUE SCAN        | DEPT_ID_PK  |    1 |      1

6 |     TABLE ACCESS BY INDEX ROWID| LOCATIONS   | 1 |     23

7 |      INDEX UNIQUE SCAN        | LOC_ID_PK   |    1 |      1

8 |    TABLE ACCESS FULL          | EMPLOYEES   |    1 |      6

9 |   TABLE ACCESS FULL           | JOBS        |     1 |     19

 

   

5oracle进程访问表的索引结构,依据索引DEPT_ID_PK(访问where条件后面的b.department_id = 30)对索引结构进行索引唯一扫描,执行一次,得到索引列值与该列所在行的rowid

7oracle进程继续访问另外一张表的索引结构,依据索引LOC_ID_PK(访问where条件后面的d.location_id)对索引结构进行唯一性扫描,执行一次,得到该索引列值与该列所在行的所有的rowid,oracle进程接下来进行回表操作。

4)首先依据rowid,执行一次,回表DEPARTMENTS得到中间结果集

DEPARTMENT_ID   DEPARTMENT_NAME   MANAGER_ID LOCATION_ID

     30              Purchasing           114          1700      

    因为表DEPARTMENTS where条件后面的索引列DEPARTMENT_ID是一个限制列,而非连接列,故而所得部门ID=30的中间结果集,就一条记录,从执行计划的rows=1也可验证。

6)再依据索引列的所有的rowid,回表LOCATIONS 得到中间结果集

      LOCATION_ID STREET_ADDRESS    POSTAL_CODE   CITY   STATE_PROVINCE    COUNTRY_ID

    1000   1297 Via Cola di Rie 00989  Roma       IT

    1100   93091 Calle della Testa  10934  Venice     IT

    1200   2017 Shinjuku-ku  1689   Tokyo  Tokyo Prefecture  JP

    1300   9450 Kamiya-cho   6823   Hiroshima     JP

    1400   2014 Jabberwocky Rd  26192  Southlake  Texas  US

    1500   2011 Interiors Blvd  99236  South San Francisco  California US

............

 

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

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

注册时间:2010-11-12

  • 博文量
    99
  • 访问量
    220804