db2中DISTRIBUTION和PARTITION之间的区别

时间:2017-08-12 18:30:45

标签: db2

db2,PARTITION和DISTRIBUTION的两个性能增强功能令我感到困惑。我如何理解它们之间的确切区别?什么类型的字段用于PARTITION以及什么用于DISTRIBUTION?

1 个答案:

答案 0 :(得分:0)

请参阅在线DB2知识中心了解您的版本和操作系统平台,该平台深入解释了这些内容并提供了语法。以下只是摘要

对于Linux / Unix / Windows上的DB2,分区DB2实例可以在多个物理或逻辑主机名上运行,但该分区实例中的数据库显示为应用程序的单个数据库。可以在无共享布局中存在逻辑分区(在相同主机名上运行)或物理分区(在不同主机名上运行),即不同的CPU,不同的磁盘,不同的RAM等。在分区的DB2实例中,表可以在设计者选择的列上进行散列分布("散列分区"),以便在所有选定的分区上均匀分配表数据。因此,仅具有2个离散值的列将是不合适的。设计人员可以将分区分组到尽可能多的分组(分区组),以便对工作负载有意义。要对DB2实例进行分区,您需要一个特殊的DB2许可证,这种配置也称为DPF(分布式分区功能),IBM出售(或用于销售)硬件/软件解决方案(IBM Smart Analytics系列)配置适合特定工作负载。对于某些仓库工作负载,非常大型数据库的决策支持/ OLAP工作负载,此配置很常见。

在大型仓库中,通常将散列分区和范围分区结合起来。但它们可以单独实施。

范围分区(按范围分区)是将表逻辑拆分为多个单独表(可以位于不同的表空间/存储对象中)的常用技术。在这种情况下,它是分区的表,与DB2实例不同。设计人员选择适合工作负载的分区列,通常列具有地理范围或时间范围(每天一个分区/周/月/小时等)或逻辑上有意义的任何内容。虽然允许全局索引,但设计人员通常会安排索引也进行分区。范围分区支持按需更容易地滚入新分区,并且以最小的并发开销推出旧分区(作为表清理的一部分)。如果数据库需要保持在一定的大小范围内,并定期存档可以发送到磁带的旧内容或者在DB2之外的长期成本较低的存储,这一点至关重要。