下载此文档

oracle执行计划详解.doc


文档分类:IT计算机 | 页数:约12页 举报非法文档有奖
1/12
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/12 下载此文档
文档列表 文档介绍
Oracle执行计划详解
目录
---
    
    Rowid的概念
    Recursive Sql概念
    Predicate(谓词)
    DRiving Table(驱动表)
    Probed Table(被探查表)
    组合索引(concatenated index)
    可选择性(selectivity)
    
    1) 全表扫描(Full Table Scans, FTS)
    2) 通过ROWID的表存取(Table Access by ROWID或rowid lookup)
    3)索引扫描(Index Scan或index lookup)有4种类型的索引扫描:
     (1) 索引唯一扫描(index unique scan)
     (2) 索引范围扫描(index range scan)
           在非唯一索引上都使用索引范围扫描。使用index rang scan的3种情况:
      (a) 在唯一索引列上使用了range操作符(> < <> >= <= between)
      (b) 在组合索引上,只使用部分列进行查询,导致查询出多行
      (c) 对非唯一索引列上进行的任何查询。
     (3) 索引全扫描(index full scan)
     (4) 索引快速扫描(index fast full scan)
    三、表之间的连接
    1,排序- - 合并连接(Sort Merge Join, SMJ)
    2,嵌套循环(Nested Loops, NL)
    3,哈希连接(Hash Join, HJ)
    另外,笛卡儿乘积(Cartesian Product)
    总结Oracle连接方法
    
    Oracle执行计划总结概述
+++

Rowid的概念:rowid是一个伪列,既然是伪列,那么这个列就不是用户定义,而是系统自己给加上的。对每个表都有一个rowid的伪列,但是表中并不物理存储ROWID列的值。不过你可以像使用其它列那样使用它,但是不能删除改列,也不能对该列的值进行修改、插入。一旦一行数据插入数据库,则rowid在该行的生命周期内是唯一的,即即使该行产生行迁移,行的rowid也不会改变。
Recursive SQL概念:有时为了执行用户发出的一个sql语句,Oracle必须执行一些额外的语句,我们将这些额外的语句称之为''recursive calls''或''recursive SQL statements''.如当一个DDL语句发出后,ORACLE总是隐含的发出一些recursive SQL语句,来修改数据字典信息,以便用户可以成功的执行该DDL语句。当需要的数据字典信息没有在共享内存中时,经常会发生Recursive calls,这些Recursive calls会将数据字典信息从硬盘读入内存中。用户不比关心这些recursive SQL语句的执行情况,在需要的时候,ORACLE会自动的在内部执行这些语句。当然DML语句与SELECT都可能引起recursive ,我们可以将触发器视为recursive SQL.
Row Source(行源):用在查询中,由上一操作返回的符合条件的行的集合,即可以是表的全部行数据的集合;也可以是表的部分行数据的集合;也可以为对上2个row source进行连接操作(如join连接)后得到的行数据集合。
Predicate(谓词):一个查询中的WHERE限制条件
Driving Table(驱动表):该表又称为外层表(OUTER TABLE)。这个概念用于嵌套与HASH连接中。如果该row source返回较多的行数据,则对所有的后续操作有负面影响。注意此处虽然翻译为驱动表,但实际上翻译为驱动行源(driving row source)更为确切。一般说来,是应用查询的限制条件后,返回较少行源的表作为驱动表,所以如果一个大表在WHERE条件有有限制条件(如等值限制),则该大表作为驱动表也是合适的,所以并不是只有较小的表可以作为驱动表,正确说法应该为应用查询的限制条件后,返回较少行源的表作为驱动表。在执行计划中,应该为靠上的那个row source,后面会给出具体说明。在我们后面的描述中,一般将该表称为连接操作的row source 1.
Probed Table(被探查表):该表又称为内层表(INNER TABLE)。在我们从驱动表中得到具体一行的数据后,在该表中寻找符

oracle执行计划详解 来自淘豆网www.taodocs.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数12
  • 收藏数0 收藏
  • 顶次数0
  • 上传人aishangni990
  • 文件大小70 KB
  • 时间2018-05-28
最近更新