技术开发 频道

IBM DB2关键特性解析:DB2分区特性

  DB2分区特性与Oracle的比较

  DB2和Oracle所支持的分区特性既有相似之处,也有一定区别。除了Oracle不支持的MDC以外,其他功能类似,只是语法上有所区别。具体对比如下表:

Oracle分区

DB2分区

Oracle 10g语法

DB2 V9语法

区间分区

Range Partitioning

表分区

Table Partitioning

PARTITION BY

RANGE

PARTITION BY

RANGE

哈希分区

Hash Partitioning

数据库分区

Database Partitioning

PARTITION BY

HASH

DISTRIBUTE BY

HASH

列表分区

List Partitioning

带生成列表分区

Table Partitioning

With Generated Column

PARTITION BY

LIST

PARTITION BY

RANGE

不支持

多维集群

Multidimensional

clustering

ORGANIZE BY

DIMENSION

  ▲DB2分区特性与Oracle的比较

  以数据库分区为例,DB2的数据库分区特性采用Share-nothing架构,这种架构允许多个数据库分区在一起并行工作来处理工作负载。在Oracle中,使用Share-disk架构。那么这两种架构有何区别呢?Share-nothing是指每个CPU都有私有内存区域和私有磁盘空间,而且两个CPU不能访问相同磁盘空间,CPU之间的通讯通过网络连接。而Share-disk是每个CPU使用自己的私有内存区域,通过内部通讯机制直接访问所有磁盘系统。这是DB2可以增加物理的partition来给数据库扩容的原因,也是DB2与Oracle分区的最大区别。

IBM DB2关键特性解析:DB2分区特性
▲Share-nothing与Share-disk架构的对比

  如下所示,是DB2中创建数据库分区表partition_table的语句,其中选择partition_date字段作为分区键:

  CREATE TABLE partition_table

  (partition_date date
NOT NULL,

  partition_data
VARCHAR(20) NOT NULL

  )

  
IN tbsp_parts

  DISTRIBUTE
BY HASH (partition_date);

  Oracle也支持数据库分区特性,语法不同也略有。如下所示,使用PARTITION BY HASH来建立数据库分区:

  CREATE TABLE hash_table

  (

  hash_part date,

  hash_data
varchar2(20)

  )

  PARTITION
BY HASH(hash_part)

  (partition p1 tablespace tbsp1,

  partition p2 tablespace tbsp2

  );

  该语句表示创建了hash_table表,此表按照hash_part字段进行哈希分区,每个分区以循环的方式放置在表空间tbsp1和tbsp2中。

  总结

  本文介绍了IBM DB2数据库的分区特性:数据库分区(DPF)、多维聚类(MDC)和表分区(Table Partition),及其内部的区别与联系,以及DB2分区特性与Oracle等价功能之间的对比。相信通过本文读者能够对DB2分区特性有更深入的认识。如果想了解更多有关DB2特性的解析,请关注《探秘:为何越来越多SAP用户选择DB2?》。

0
相关文章