聚簇

转载 2012年03月26日 15:47:21
为了提高某个属性(或属性组)的查询速度,把这个或这些属性(称为聚簇码)上具有相同值的元组集中存放在连续的物理块称为聚簇。

聚簇功能

  聚簇功能可以大大提高按聚簇码进行查询的效率。例如要查询信息系的所有学生名单,设信息系有500名学生,在极端情况下,这500名学生所对应的数据元组分布在500个不同的物理块上。尽管对学生关系已按所在系建有索引,由索引很快找到了信息系学生的元组标识,避免了全表扫描,然而再由元组标识去访问数据块时就要存取500个物理块,执行500次I/O操作。如果将同一系的学生元组集中存放,则每读一个物理块可得到多个满足查询条件的元组,从而显著地减少了访问磁盘的次数
  聚簇功能不但适用于单个关系,也适用于经常进行连接操作的多个关系。即把多个连接关系的元组按连接属性值聚集存放,聚簇中的连接属性称为聚簇码。
  这就相当于把多个关系按"预连接"的形式存放,从而大大提高连接操作的效率。
  一个数据库可以建立多个聚簇,一个关系只能加入一个聚簇。
  选择聚簇存取方法,即确定需要建立多少个聚簇,每个聚簇中包括哪些关系。
  下面先设计候选聚簇,一般来说:
  (1)对经常在一起进行连接操作的关系可以建立聚簇;
  (2)如果一个关系的一组属性经常出现在相等比较条件中,则该单个关系可建立聚簇;
  (3)如果一个关系的一个(或一组)属性上的值重复率很高,则此单个关系可建立聚簇。即对应每个聚簇码值的平均元组数不是太少。太少了,聚簇的效果不明显。

  

然后检查候选聚簇中的关系,取消其中不必要的关系:

  (1)从聚簇中删除经常进行全表扫描的关系;
  (2)从聚簇中删除更新操作远多于连接操作的关系;
  (3)不同的聚簇中可能包含相同的关系,一个关系可以在某一个聚簇中但不能同时加入多个聚簇。要从这多个聚簇方案(包括不建立聚簇)中选择一个较优的,即在这个聚簇上运行各种事务的总代价最小。
  必须强调的是,聚簇只能提高某些应用的性能,而且建立与维护聚簇的开销是相当大的。对已有关系建立聚簇,将导致关系中元组移动其物理存储位置并使此关系上原有的索引无效,必须重建。当一个元组的聚簇码值改变时,该元组的存储位置也要做相应移动,聚簇码值要相对稳定,以减少修改聚簇码值所引起的维护开销。
  因此,当通过聚簇码进行访问或连接是该关系的主要应用,与聚簇码无关的其他访问很少或者是次要的,这时可以使用聚簇。尤其当SQL语句中包含有与聚簇码有关的ORDER BY,GROUP BY,UNION,DISTINCT等子句或短语时,使用聚簇特别有利,可以省去对结果集的排序操作;否则很可能会适得其反。

Oracle中聚簇表的使用

  • 2012年07月25日 09:58
  • 115KB
  • 下载

【Oracle】Oracle表空间和聚簇

与聚簇有关的视图: 与表空间有关的视图: Oracle建议的表空间大小: 与索引有关的视图: 与视图有关的视图: Oracle系统触发器支持的系统事件...

Birch算法 高维聚簇算法

  • 2009年12月23日 16:07
  • 778KB
  • 下载

oracle 数据库模式对象,索引,序列,同义词,查看用户拥有的表,聚簇,数据库链接

http://heisetoufa.iteye.com/blog/364944 数据库模式对象: Sql代码   TABLE   表   用于存储数据的基本结构  V...

Oracle三种table: 堆表Heap Table、索引组织表IOT和聚簇表Cluster

http://m.blog.itpub.net/17203031/viewspace-774405      聊聊Oracle聚簇Cluster IOT:     create table t...

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

之前的几篇文章: 《一个执行计划异常变更的案例 - 前传》 《一个执行计划异常变更的案例 - 外传之绑定变量窥探》 《一个执行计划异常变更的案例 - 外传之查看绑定变量值的几种方法》 《一个执...
  • bisal
  • bisal
  • 2016年12月28日 01:08
  • 3603

聚簇因子

1. 概念      聚簇因子认为是根据索引遍历一遍实体表的逻辑读的块数。因为数据读取方式以块为单位,不是行,因此在读取大范围数据(满足条件行很多,不是unique index scan)时,利...

聚簇因子对于索引的影响

一、官方文档说明 1、基本概念 Index Clustering Factor           Fora B-tree index, the index clustering factor...

聚簇表

第一部分 聚簇表,简单来说就是利用选取一个或多个列作为cluster key,具有相同cluster key的一个或多个表的数据行会被保留在同一个数据块中。 适用条件:对于经常需要进行连接操作而又...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:聚簇
举报原因:
原因补充:

(最多只允许输入30个字)