下载此文档

oracleSQL性能优化.ppt


文档分类:IT计算机 | 页数:约75页 举报非法文档有奖
1/75
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/75 下载此文档
文档列表 文档介绍
ORACLE SQL
性能优化
五月 18
基本概念
索引
执行计划
SQL调优原则
目录
基本概念
Rowid:rowid是一个伪列,既然是伪列,那么这个列就不是用户定义,而是系统自己给加上的。对每个表都有一个rowid的伪列,但是表中并不物理存储ROWID列的值。不过你可以像使用其它列那样使用它,但是不能删除改列,也不能对该列的值进行修改、插入。一旦一行数据插入数据库,则rowid在该行的生命周期内是唯一的,即即使该行产生行迁移,行的rowid也不会改变。
Driving Table(驱动表):该表又称为外层表(OUTER TABLE)。这个概念用于嵌套与HASH连接中。如果该row source返回较多的行数据,则对所有的后续操作有负面影响。一般说来,应用查询的限制条件后,返回较少行源的表作为驱动表。在执行计划中,应该为靠上的那个row source,一般将该表称为连接操作的row source 1.
Probed Table(被探查表):该表又称为内层表(INNER TABLE)。在我们从驱动表中得到具体一行的数据后,在该表中寻找符合连接条件的行。所以该表应当为大表(实际上应该为返回较大row source的表)且相应的列上应该有索引。一般将该表称为连接操作的row source 2.
基本概念
可选择性(selectivity):比较一下列中唯一键的数量和表中的行数,就可以判断该列的可选择性。如果该列的“唯一键的数量/表中的行数”的比值越接近1,则该列的可选择性越高,该列就越适合创建索引,同样索引的可选择性也越高。在可选择性高的列上进行查询时,返回的数据就较少,比较适合使用索引查询。
概念
存储结构
索引扫描方式
索引分类
访问索引相关规则
索引
索引-概念
索引是建立在表的一列或多个列上的辅助对象,目的是加快访问表中的数据。
类似书的目录结构
Oracle 的“索引”对象,与表关联的可选对象,提高SQL查询语句的速度
索引直接指向包含所查询值的行的位置,减少磁盘I/O
与所索引的表是相互独立的物理结构
Oracle 自动使用并维护索引,插入、删除、更新表后,自动更新索引,索引会影响表数据插入、删除、更新的性能
概念
存储结构
索引扫描方式
索引分类
访问索引相关规则
索引-存储结构
索引-存储结构
(imc)
B
C
(imc)
AD
AK
(imc)
BI
BO哦
(imc)
C
AAA ROWID
ABC ROWID
ACF ROWID
ADK ROWID
AKA ROWID
APP ROWID
AYC ROWID
BAC ROWID
BDF ROWID
BIL ROWID
BJL ROWID
RMW ROWID
BOO ROWID
BRZ ROWID
ROOT
这是一个部门表中对部门名称建立索引
索引-存储结构
特点:
存储索引数据的块,称为B Tree树的节点。有3种类型的节点:根节点、分枝节点、叶节点。根节点和分枝节点具有相同的结构,存储数据主要包括:索引值、键值对于下一节点地址、lmc指针。Lmc指针指向比当前枝节点最小的索引值还小的下一级地址。叶节点索引块存储数据主要包括:索引值、rowid,前后节点地址。
索引始终保持平衡,也就是根节点到任意一个叶节点,路径是等距的。
索引的每一个叶节点,有两个指针,指向前后节点的地址。也就是说叶节点是一个链表。链表中的索引值,从小到大排列。对于非唯一索引,rowid也是索引值的一部分。在索引的字段相同的情况下,按rowid排序。
索引的分枝节点存储的索引值,不是完整的索引值,只是前缀,只要能够区分大小就行。这样可以减少分枝节点的数量。
B Tree 索引不对NULL值进行索引,对于某一行,如果索引的所有列都是null值,则该行不能被索引。

oracleSQL性能优化 来自淘豆网www.taodocs.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数75
  • 收藏数0 收藏
  • 顶次数0
  • 上传人w447750
  • 文件大小315 KB
  • 时间2018-05-31