《Oracle Concept》第三章 - 7

背景:

按照《Oracle Conecpt》的结构一起了解Oracle数据库,这是学习Oracle从入门到精通的基础。


前言《Introduction to Oracle Database》的历史文章

《Oracle Concept》前言-12c内容补充

《Oracle Concept》前言介绍-7

《Oracle Concept》前言介绍-6

《Oracle Concept》前言介绍-5

《Oracle Concept》前言介绍-4

《Oracle Concept》前言介绍-3

《Oracle Concept》前言介绍-2

《Oracle Concept》前言介绍-1

《Oracle Conecpt》 - 目录结构

《Oracle Conecpt》 - 初步认识1


第二章《Tables and Table Clusters》 历史文章

《Oracle Concept》第二章 - 21 (12c内容补充)

《Oracle Concept》第二章 - 20 (12c内容补充)

《Oracle Concept》第二章 - 19

《Oracle Concept》第二章 - 18

《Oracle Concept》第二章 - 17

《Oracle Concept》第二章 - 16

《Oracle Concept》第二章 - 15

《Oracle Concept》第二章 - 14

《Oracle Concept》第二章 - 13

《Oracle Concept》第二章 - 12

《Oracle Concept》第二章 - 11

《Oracle Concept》第二章 - 10

《Oracle Concept》第二章 - 9

《Oracle Concept》第二章 - 8

《Oracle Concept》第二章 - 7

《Oracle Concept》第二章 - 6

《Oracle Concept》第二章 - 5

《Oracle Concept》第二章 - 4

《Oracle Concept》第二章 - 3

《Oracle Concept》第二章 - 2

《Oracle Concept》第二章 - 1


第三章《Indexes and Index-Organized Tables》历史文章:

《Oracle Concept》第三章 - 6

《Oracle Concept》第三章 - 5

《Oracle Concept》第三章 - 4

《Oracle Concept》第三章 - 3

《Oracle Concept》第三章 - 2

《Oracle Concept》第三章 - 1


本文主题第三章《Indexes and Index-Organized Tables》 - Overview of Indexes。


索引聚簇因子

索引聚簇因子衡量的是一个索引键值反映到数据表中行的顺序,例如雇员last name字段。索引反映到数据表中行的存储顺序越接近,聚簇因子的值就会越小。


聚簇因子可以粗略衡量通过索引读取表中数据所需要的IO数量:

  • 如果聚簇因子值很高,Oracle在执行一个大索引的范围扫描时,就会消耗较高的IO。索引键会指向任意的表块,因此数据库通过索引读取数据的时候,可能就会反复地读取相同的数据块。

  • 如果聚簇因子值很低,Oracle在执行一个大索引的范围扫描时,就会消耗较低的IO。在同一个范围内的索引键值可能会指向相同的数据块,因此数据库不需要反复读取相同的数据块。


聚簇因子和索引扫描相关,因为他能展示:

  • 数据库是否会使用索引范围扫描。

  • 和索引相关的表中数据组织程度。

  • 如果必须根据索引键值进行行排序,是否考虑使用索引组织表、分区表或者表簇。


例如,假设employees表占用两个数据块。表3-1描述了两个数据块中的行(省略号表示数据未显示),

640?wx_fmt=png


行是按照last name(粗体字)的顺序存储的。例如,数据块1的最后一行,是Abel,往上的下一行是Ande,按照英文字母的顺序,直到数据块1的第一行Steven King。数据块2的最后一行是Kochar,往上的下一行是Kumar,按照英文字母的顺序,直到数据块2的第一行Zlotkey。


假设last name列存在索引,每个键值都会对应到一个rowid。从概念上讲,索引键值像这样:

640?wx_fmt=png


假设雇员ID列存在单独的索引。从概念上讲,索引可能像这样,雇员ID会分布在这两个块的任意位置:

640?wx_fmt=png


示例3-2通过ALL_INDEXES视图检索这两个索引的聚簇因子值。EMP_NAME的聚簇因子值很低,他表示同一个叶子块中相邻的索引键值指向的数据行会位于相同的数据块中。EMP_EMP_ID_PK的聚簇因子值很高,他表示同一个叶子块中的相邻索引键值指向的数据行不太可能位于同一个数据块中。

640?wx_fmt=png


关于聚簇因子的知识,可以参考:

一个执行计划异常变更的案例 - 外传之聚簇因子(Clustering Factor)

展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客
应支付0元
点击重新获取
扫码支付

支付成功即可阅读