DB2 最佳实践: 物理数据库设计最佳实践,第 2 部分:MDC、数据库分区、视图以及后设计工具介绍
2009-11-12 00:00:00 来源:WEB开发网核心提示: 存储块被设计为同这个表所在表空间的扩展数据块大小相等,如果这个表的单元数目非常大,DB2 最佳实践: 物理数据库设计最佳实践,第 2 部分:MDC、数据库分区、视图以及后设计工具介绍(4),存储的浪费也会很大,如果 MDC 很差而且产生了大量的单元,所以块索引通常是传统基于行的索引的 1/100
存储块被设计为同这个表所在表空间的扩展数据块大小相等。如果这个表的单元数目非常大,存储的浪费也会很大。如果 MDC 很差而且产生了大量的单元,表的存储需求会非常显著的增加,而且 MDC 的性能也会受损。然而,设计的 MDC 表只会比非 MDC 表大一点,而且在集群和数据转入转出上提供了较大的好处(将在后面讨论)
图 7 显示存储块和单元分配。如图所示,每个单元都包含了一批存储块。绝大多数块被数据填充,不过对于每个单元的最后一个块,却是或多或少被部分填充的。
图 7. MDC 单元存储
图片看不清楚?请点击这里查看原图(大图)。
如果你有样本数据或具体数据,你就可以使用 SQL 来为所有可能的 MDC 设计度量 MDC 需要的单元数目,如下所示:
SELECT COUNT(*) FROM (SELECT DISTINCT COL1, COL2, COL3 FROM MY_FAV_TABLE) AS NUM_DISTINCT;
对一个 3 维的 MDC 表来说,COL1、COL2 和 COL3 是 MDC 的维度。结果数乘以表的扩展数据块大小将得出一个在表被转换为 MDC 过程中扩展数据块增长(不是大小)的上限。
MDC 的其他核心价值是 DB2 数据库管理器在表的 MDC 维度上自动为 MDC 表创建索引。这些特殊的索引对块而非行建立索引,这是可行的。因为在 MDC 表中数据会一直保持集群,因此在相同块中的所有的行同样确保有相同的键值。这是由于在 MDC 中数据是对块进行索引而非记录,所以块索引通常是传统基于行的索引的 1/1000 大小。结果就是在相关查询运行时的性能好处,并把 INSERT、UPDATE 和 DELETE 操作的开销减到了最少。
- ››db2 对float类型取char后显示科学计数法
- ››DB2中出现SQL1032N错误现象时的解决办法
- ››DB2 锁升级示例
- ››db2诊断系列之---定位锁等待问题
- ››db2 命令选项解释
- ››最佳ASP.NET编程习惯
- ››DB2 最佳实践: 使用 DB2 pureXML 管理 XML 数据的...
- ››DB2 9.5 SQL Procedure Developer 认证考试 735 准...
- ››DB2 9.5 SQL Procedure Developer 认证考试 735 准...
- ››DB2 9.5 SQL Procedure Developer 认证考试 735 准...
- ››DB2 基础: 表空间和缓冲池
- ››DB2 XML 编程,第 1 部分: 理解 XML 数据模型
更多精彩
赞助商链接