2012年8月25日星期六

Oracle 模式对象聚簇(Clusters)

Oracle 模式对象聚簇(Clusters)

http://docs.oracle.com/cd/B28359_01/server.111/b28318/schema.htm#autoId75

 

本文内容

  • 聚簇
  • 管理聚簇涉及的方面
  • 参考资料

 

聚簇


聚簇是一种存储表数据的可选方法。聚簇是共享相同数据块的一组表。因为,它们有共同的列,并经常一起使用。

例如,Oracle  HR 模式的 employeesdepartments 表都具有 department_id 列。当聚簇 employeesdepartments 表时,Oracle 数据库在物理上存储所有的行,两个表中每个部门的每个员工都存储在相同的数据块。

如图 1 所示,当聚簇 employeesdepartments 表时,发生的事情:

图 1 聚簇 Oracle HR 模式 employees 和 departments 表

cncpt023

类似地,聚簇 Oracle SCOTT 模式 emp dept 表,如图 2 所示。

图 2 聚簇 Oracle SCOTT 模式 emp 和 dept 表

admin021

聚簇把不同表的相关数据行存储在相同的数据块,正确地使用聚簇可以获得如下好处:

  • 连接已聚簇的表,可以减少磁盘 I/O 。
  • 连接已聚簇的表,可以改善访问。
  • 在一个聚簇中,一个聚簇键值是对一个特定行的聚簇键列的值。每个聚簇键值在聚簇和聚簇索引中只被存储一次,无论不同表的行包含多少值。因此,与非聚簇的表相比,需要更少的存储空间来存储相关的表和索引。例如,上图所示,每个聚簇键(每 department_id)对于在 employeesdepartments 表包含相同值的很多行只存储一次。

 

管理聚簇涉及的方面


聚簇涉及如下内容:

  • 为聚簇选择适当的表
  • 为聚簇键选择适当地列
  • 指定一个平均聚簇键和相关行所需的空间
  • 指定每个聚簇和聚簇索引行的位置
  • 估计聚簇大小并设置存储参数

 

参考资料


  • 管理聚簇 http://docs.oracle.com/cd/B28359_01/server.111/b28310/clustrs.htm#i1006586


TAG: