更改开始

创建分区增长表空间

您可以创建一个按增长分区的表空间,以便 Db2 根据数据增长管理分区,并在每个分区中使用分段空间管理功能。

关于本任务

分区增长(PBG)表空间是一种通用表空间(UTS),其分区由 Db2 根据数据增长自动管理。 它只能容纳一个表格的数据页面,并且每个分区都有分段空间管理功能。

Db2 随着数据量的增长,PBG表空间会自动管理,当需要更多空间来满足插入操作时,会自动添加新的分区。

PBG表格空间最适合用于中小型表格,尤其是当表格没有合适的分区键时。 分区增长表空间的大小取决于使用的缓冲池页面大小以及创建表空间时指定的MAXPARTITIONS和DSSIZE值,最大可达128 TB。

在PBG表空间中的表中创建的任何索引都必须是非分区索引。 也就是说,在PBG表空间中,不支持分区索引,包括分区索引和数据分区二级索引(DPSI)。 更多信息,请参阅分区表索引

提示: PBG表格空间最适合用于中小型表格。 如果您期望表的大小超过 64 GB,请考虑使用分区范围(PBR)表空间。
当PBG表空间中的表变得太大时,可能会出现一些弊端,包括以下问题:
  • 插入和查询性能下降,这可能是需要转换的最重要因素。 性能下降的原因有很多,但对于PBG表格空间中的大型表格,表格空间的大小通常是主要原因之一。
  • 难以恢复数据集群(需要对整个表空间进行REORG)。
  • 与非常大的非分区索引相关的问题,因为PBG表空间中的表不支持分区(分区和DPSI)索引。 有关更多信息,请参阅
  • 公用程序缺少分区并行支持。
  • 对分区级实用程序操作的支持有限。

如果遇到这些问题,请考虑改用分区范围(PBR)表空间。

提示: 如果表没有合适的分区方案,可以考虑在分区键中创建一个隐式隐藏的 ROWID 列。 分区键中的任何 ROWID 列都能确保数据在分区中均匀分布,隐式隐藏的 ROWID 列对应用程序也是透明的。

分区结构支持分区级别的实用操作和并行功能。 PBG表格空间在每个分区内也具有分段组织和分段空间管理功能。 分段结构能够更好地管理空间,并具有批量删除功能。

提示: PBG表空间是单表 Db2 管理的分段(非UTS)表空间的替代方案,后者已不再推荐使用。

过程

要创建分区增长表空间,请使用以下方法之一:

  • 发出CREATE TABLE语句,并指定PARTITION BY SIZE子句。
    Db2 为新建表隐式创建一个按增长分区的表空间。
    以下示例创建了一个基于数据增长进行分区的表,该表位于一个隐式创建的分区增长表空间中:
      CREATE TABLE TS02TB
           (C1 SMALLINT,
            C2 DECIMAL(9,2),
            C3 CHAR(4))
         PARTITION BY SIZE EVERY 4G
         IN DATABASE DSNDB04;
  • 更改开始发出 CREATE TABLESPACE 语句,并指定 MAXPARTITIONS 和 NUMPARTS 子句的以下任意组合:更改结束
    • 指定不带NUMPARTS的MAXPARTITIONS,例如:
      CREATE TABLESPACE TEST01TS IN TEST01DB USING STOGROUP SG1 
      DSSIZE 2G 
      MAXPARTITIONS 24 
      LOCKSIZE ANY 
      SEGSIZE 4; 
      COMMIT;
    • 指定MAXPARTITIONS和NUMPARTS。
    • 更改开始FL 504 省略 MAXPARTITIONS 和 NUMPARTS。更改结束
更改结束