应用BCU构建高性能数据仓库系统
DB2数据库分区技术:
一个DB2数据库包括一个或者多个数据库分区(Partition)。每个分区在本质上就是一个小型的数据库:拥有且只拥有自己的数据、日志、锁以及其它的组成数据库的基本要素。所以,DB2多分区数据库也称为是基于非共享(Share Nothing)或者海量并行处理(MPP)构架的数据库。
在一些OLTP和ERP的环境中,由于数据量相对小,而且每次只是查询很少比例的数据。而在数据量很大,要求针对大量数据的并发查询的环境,比如数据仓库的环境,就需要多分区数据库。
DB2基于分区的、非共享的结构的好处是:
减少了对共享资源(内存,I/O通道,存储)的访问冲突,提高并行度;
分区内(SMP)并行和分区间(MPP)并行的完美结合。
在一个多分区数据库环境中,DB2管理多个分区,对于用户和应用程序而言,只是一个数据库。换句话说,一旦物理数据建立起来,用户和应用程序不会意识到是在访问多分区数据库。
分区数据库如下图:
在SMP的服务器上,可以建立非共享结构的多分区的数据库结构。如下图。在一个操作系统中多个处理器,多个数据库分区。
在MPP的环境中建立非共享结构的多分区的数据库结构,见下图。每个操作系统中,单个处理器,单个数据库分区。
利用节点组可以来实现数据灵活布局,通过设定不同的节点组,来把小表放置在单数据库分区上,而把大表放在尽量多的数据库分区上,来提高性能和吞吐量。
节点组的管理非常简单,甚至可以通过编辑DB2NODES.CFG文件,就可以完成节点组的配置。
DB2 UDB提供了先进的“哈希(HASH)算法”映射数据库的每一条记录到特定的数据库分区中。“哈希算法”使用表中的一列(或一组列)作为分区关键字,得到0至4095的数值。分区图定义了为4096个值中的每一个值分配的特定的数据库分区。
0
相关文章