DB2 最佳实践: 物理数据库设计最佳实践,第 2 部分:MDC、数据库分区、视图以及后设计工具介绍
2009-11-12 00:00:00 来源:WEB开发网查询:
select * from sales
where sales_date> ” 2006/03/03 ” and date< “ 2007/01/01 ” ..
编译器会生成附加的谓词:
month>=200603 and month<=200701
为了减少空间浪费,可以指定一个更小的表空间扩展数据块,这会减少你的 MDC 块大小。
不要选择太多的维度。很少有设计能在 MDC 有 3 个以上的维度却不产生过多的存储需求。
你拥有的维度越多,单元基数就会以指数级相应的增长。这使得控制表膨胀率 10% 的设计目标变得几乎不可能实现。如果表过度膨胀(例如超过两倍大小)不仅需要更多的存储,同时也会因为部分填充块的 I/O 增加而使集群失去优势。
一个简单的例子:考虑一个有三个维度适合集群的表,每个有 10,000 唯一值。如果这些列彼此之间没有相互关联,那么对所有三个维度的集群就没有 coarsification,这会产生 10,000 x 10,000 x 10,000 个单元,每个单元有一个部分填充块。如果每块是 1MB,那么这个设计上的疏忽产生的代价就将是 500,000TB !
考虑只有一个维度的 MDC 。和传统单维度集群索引相比,单个维度的 MDC 仍然有相当多的优点。有如下理由:
集群是有保证的。
MDC 表中的索引是用block创建的,而非row。这种索引大小只有传统基于行的索引的 1/1000 。
用 MDC 转出数据,提高了 DELETE 性能。 DB2 9.5 中在 MDC 上的 RID 索引更新是异步的。
MDC 可以很方便的转入数据。
使用单维 MDC(如果需要可以 coarsification)强制进行集群来替代集群索引。集群索引需要付出很大的努力(不能保证集群质量)来集群数据,而且随着时间的推移,数据将变得不再集群。与之相比,MDC 保证了数据集群性,避免了重组数据的需求(见上面“ MDC Scenario ”章节中的 coarsification)。
- ››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 数据模型
更多精彩
赞助商链接