数据库分区组是一个或多个数据库分区的集合。想要为数据库创建表时,首先创建用来存储表空间的数据库分区组,然后创建用来存储表的表空间。
可以在数据库中定义一个或多个数据库分区组成的命名子集。您定义的每个子集称为 数据库分区组 。包含多个数据库分区的每个子集称为 多分区数据库分区组 。多分区数据库分区组只能使用属于相同实例的数据库分区定义。
图 1 给出了一个含五个分区的数据库示例,在这个示例中:
• 数据库分区组横跨除一个数据库分区外的所有其它分区(数据库分区组 1)。
• 数据库分区组包含一个数据库分区(数据库分区组 2)。
• 数据库分区组包含两个数据库分区(数据库分区组 3)。
• 数据库分区组 2 中的数据库分区与数据库分区组 1 共享并与之相交。
• 数据库分区组 3 中存在单个数据库分区,该分区与数据库分区组 1 共享并与之相交。
可使用 CREATE DATABASE PARTITION GROUP 语句创建数据库分区组。此语句指定表空间容器和表数据将驻留其上的一组数据库分区。此语句还可以:
• 为数据库分区组创建分区映射。
• 生成分区映射标识。
• 将记录插入下列目录表:
o SYSCAT.DBPARTITIONGROUPS
o SYSCAT.PARTITIONMAPS
o SYSCAT.DBPARTITIONGROUPDEF
创建数据库时创建的缺省数据库分区组由数据库管理器使用。IBMCATGROUP 是包含系统目录的表空间的缺省数据库分区组,只在主节点上(主数据库分区)。IBMTEMPGROUP 是系统临时表空间的缺省数据库分区组,包含所有数据库分区。
IBMDEFAULTGROUP 是包含用户定义的表的表空间的缺省数据库分区组,包含所有数据库分区。
通过将表空间放置在多分区数据库分区组中,将该表空间内的所有表划分或分区到该数据库分区组的每个分区中。由此该表空间被创建到了一个数据库分区组中。一旦位于某个数据库分区组中,该表空间就必须保留在该处;而不能更改至另一数据库分区组。CREATE TABLESPACE 语句用于将表空间与数据库分区组关联。
建数据库分区组示例:
CREATE DATABASE PARTITION GROUP MAXGROUP ON ALL DBPARTITIONNUMS
CREATE DATABASE PARTITION GROUP MEDGROUP ON DBPARTITIONNUMS( 0 TO 2, 5, 8)
可以在数据库中定义一个或多个数据库分区组成的命名子集。您定义的每个子集称为 数据库分区组 。包含多个数据库分区的每个子集称为 多分区数据库分区组 。多分区数据库分区组只能使用属于相同实例的数据库分区定义。
图 1 给出了一个含五个分区的数据库示例,在这个示例中:
• 数据库分区组横跨除一个数据库分区外的所有其它分区(数据库分区组 1)。
• 数据库分区组包含一个数据库分区(数据库分区组 2)。
• 数据库分区组包含两个数据库分区(数据库分区组 3)。
• 数据库分区组 2 中的数据库分区与数据库分区组 1 共享并与之相交。
• 数据库分区组 3 中存在单个数据库分区,该分区与数据库分区组 1 共享并与之相交。
可使用 CREATE DATABASE PARTITION GROUP 语句创建数据库分区组。此语句指定表空间容器和表数据将驻留其上的一组数据库分区。此语句还可以:
• 为数据库分区组创建分区映射。
• 生成分区映射标识。
• 将记录插入下列目录表:
o SYSCAT.DBPARTITIONGROUPS
o SYSCAT.PARTITIONMAPS
o SYSCAT.DBPARTITIONGROUPDEF
创建数据库时创建的缺省数据库分区组由数据库管理器使用。IBMCATGROUP 是包含系统目录的表空间的缺省数据库分区组,只在主节点上(主数据库分区)。IBMTEMPGROUP 是系统临时表空间的缺省数据库分区组,包含所有数据库分区。
IBMDEFAULTGROUP 是包含用户定义的表的表空间的缺省数据库分区组,包含所有数据库分区。
通过将表空间放置在多分区数据库分区组中,将该表空间内的所有表划分或分区到该数据库分区组的每个分区中。由此该表空间被创建到了一个数据库分区组中。一旦位于某个数据库分区组中,该表空间就必须保留在该处;而不能更改至另一数据库分区组。CREATE TABLESPACE 语句用于将表空间与数据库分区组关联。
建数据库分区组示例:
CREATE DATABASE PARTITION GROUP MAXGROUP ON ALL DBPARTITIONNUMS
CREATE DATABASE PARTITION GROUP MEDGROUP ON DBPARTITIONNUMS( 0 TO 2, 5, 8)