Oracle 模式对象聚簇(Clusters)
http://docs.oracle.com/cd/B28359_01/server.111/b28318/schema.htm#autoId75
本文内容
- 聚簇
- 管理聚簇涉及的方面
- 参考资料
聚簇
聚簇是一种存储表数据的可选方法。聚簇是共享相同数据块的一组表。因为,它们有共同的列,并经常一起使用。
例如,Oracle HR 模式的 employees 和 departments 表都具有 department_id 列。当聚簇 employees 和 departments 表时,Oracle 数据库在物理上存储所有的行,两个表中每个部门的每个员工都存储在相同的数据块。
如图 1 所示,当聚簇 employees 和 departments 表时,发生的事情:
图 1 聚簇 Oracle HR 模式 employees 和 departments 表
类似地,聚簇 Oracle SCOTT 模式 emp 和 dept 表,如图 2 所示。
图 2 聚簇 Oracle SCOTT 模式 emp 和 dept 表
聚簇把不同表的相关数据行存储在相同的数据块,正确地使用聚簇可以获得如下好处:
- 连接已聚簇的表,可以减少磁盘 I/O 。
- 连接已聚簇的表,可以改善访问。
- 在一个聚簇中,一个聚簇键值是对一个特定行的聚簇键列的值。每个聚簇键值在聚簇和聚簇索引中只被存储一次,无论不同表的行包含多少值。因此,与非聚簇的表相比,需要更少的存储空间来存储相关的表和索引。例如,上图所示,每个聚簇键(每 department_id)对于在 employees 和 departments 表包含相同值的很多行只存储一次。
管理聚簇涉及的方面
聚簇涉及如下内容:
- 为聚簇选择适当的表
- 为聚簇键选择适当地列
- 指定一个平均聚簇键和相关行所需的空间
- 指定每个聚簇和聚簇索引行的位置
- 估计聚簇大小并设置存储参数
参考资料
- 管理聚簇 http://docs.oracle.com/cd/B28359_01/server.111/b28310/clustrs.htm#i1006586
TAG: