专栏首页bisal的个人杂货铺《Oracle Concept》第三章 - 7

《Oracle Concept》第三章 - 7

背景:

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

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

索引聚簇因子

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

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

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

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

  • 数据库是否会使用索引范围扫描。
  • 和索引相关的表中数据组织程度。
  • 如果必须根据索引键值进行行排序,是否考虑使用索引组织表、分区表或者表簇。

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

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

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

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

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

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

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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 《Oracle Concept》第三章 - 1

    版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/bisal/article/details/90206...

    bisal
  • 《Oracle Concept》第三章 - 9

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

    bisal
  • 《Oracle Concept》第三章 - 8

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

    bisal
  • 《Oracle Concept》第三章 - 5

    版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/...

    bisal
  • 《Oracle Concept》第三章 - 6

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

    bisal
  • 《Oracle Concept》第三章 - 4

    版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.n...

    bisal
  • 《Oracle Concept》第三章 - 2

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

    bisal
  • 《Oracle Concept》第三章 - 3

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

    bisal
  • 《Oracle Concept》第三章 - 12

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

    bisal

扫码关注云+社区

领取腾讯云代金券