在Linux上利用数据分区功能提高可伸缩性和性能
2009-12-23 15:00:13 来源:WEB开发网在这种情况下,Database Partition Group 1 横跨除一个数据库分区外的所有数据库分区。它还包含一个名为 'Database Partition Group 2' 的单分区数据库分区组。另外,'Database Partition Group 3' 也与 Database Partition Group 1 共享了一个数据库分区。
可以用 CREATE DATABASE PARTITION GROUP 语句创建新的数据库分区,用 ALTER DATABASE PARTITION GROUP 语句修改数据库分区。
数据被划分到一个数据库分区组中的所有分区上,可以为数据库分区组添加一个或多个数据库分区,或者从中去掉数据库分区。属于数据库系统配置一部分的每个数据库分区都必须在一个名为 db2nodes.cfg 的分区配置文件中定义。一个数据库分区组最多可以包含为数据库系统定义的所有数据库分区。
当创建或修改一个数据库分区组时,就会有一个与之关联的分区映射。数据库管理器可以通过将分区映射与分区键和散列算法相结合,来确定数据库分区组中的哪些数据库分区将存储给定的数据行。在一个非分区数据库中,不需要分区键或分区映射。过一会儿我们将详细讨论这些概念。
一个数据库分区是数据库的一部分,其中具有用户数据、索引、配置文件和事务日志。有一些默认的数据库分区组是在数据库创建时被创建的:
IBMCATGROUP - 用于包含系统编目的表空间的默认数据库分区组。
IBMTEMPGROUP - 用于系统临时表空间的默认数据库分区组。
IBMDEFAULTGROUP - 用于包含用户表的表空间的默认数据库分区组。
用于已声明的临时表的用户临时表空间可以在 IBMDEFAULTGROUP 或任何用户创建的数据库分区组中创建,但不能在 IBMTEMPGROUP 中创建。
为了创建一个新的由 db2nodes.cfg 中所有分区组成的分区组,可以发出以下命令:
create database partition group ALLPART on all dbpartitionnums
如果您想创建一个新的分区组,且这个分区组只包含分区 1 和 2,可以发出如下命令:
create database partition group PART12 on dbpartitionnums (1,2)
分区兼容性
可对分区键的对应列的基本数据类型进行比较,并可将它们声明为是分区兼容的(partition compatible)。分区兼容的数据类型具有如下属性:具有相同值但有不同类型的两个变量会按相同的分区算法映射至同一个分区号。 分区兼容性具有下列特征:
基本数据类型与另一个相同的基本数据类型兼容。
内部格式用于 DATE、TIME 和 TIMESTAMP 数据类型。它们彼此都不兼容,且都不与 CHAR 兼容。
分区兼容性不受带有 NOT NULL 或 FOR BIT DATA 定义的列的影响。
对兼容数据类型的 NULL 值的处理是完全相同的;对不兼容数据类型的 NULL 值的处理可能不相同。
用户定义的类型的基本数据类型用于分析分区兼容性。
对分区键中相同值的小数的处理是完全相同的,即使它们的标度和精度不同。
字符串中(CHAR、VARCHAR GRAPHIC 或 VARGRAPHIC)的尾部空格会被散列算法忽略。
BIGINT、SMALLINT 和 INTEGER 是兼容的数据类型。
REAL 和 FLOAT 是兼容的数据类型。
不同长度的 CHAR 和 VARCHAR 是兼容的数据类型。
GRAPHIC 和 VARGRAPHIC 是兼容的数据类型。
分区兼容性不适用于 LONG VARCHAR、LONG VARGRAPHIC、CLOB、DBCLOB 和 BLOB 数据类型,因为它们不能作为分区键。
更多精彩
赞助商链接