改变分区之间的界限
您可以通过为限制键指定新的值来更改分区的边界。 限制键是分区键的最高值。 分区键是指用于确定分区的列。
关于本任务
过程
更改分区之间的边界:
- 使用ALTER语句修改每个分区边界的限制键值。
如果分区表空间使用表控制的分区,则使用带有ALTER PARTITION子句的ALTER TABLE语句来修改限制键。 如果分区表空间使用索引控制的分区,请使用带有ALTER PARTITION子句的ALTER INDEX语句。
建议 :如果表空间使用索引控制的分区,请在修改限制键之前将其更改为使用表控制的分区。 您可以参考转换表格空间以使用表格控制的分区。如果您尝试使用ALTER TABLE来修改限制键,如果以下两个条件都成立,则语句将失败:- 表格空间使用索引控制的分区。
- PREVENT_ALTERTB_LIMITKEY子系统参数设置为YES。
您可以更改所有或大多数分区的限制键值。 您可以一次对一个或多个分区应用更改。
更改极限键的效果取决于表格空间的类型:
- 对于按范围划分的表空间和采用表控分区(非UTS)的表空间,在更改限制键后,数据仍然可用。
在大多数情况下,更改这些表空间的限制键是一个待定的定义更改,导致边界两侧的分区处于待定的REORG状态(AREOR)。
在某些情况下,更改极限键值会立即生效,AREOR状态不会设置。 当 Db2 确定以下两个条件均成立时,立即生效:

- 更改不会在分区之间移动任何数据
- 已识别分区上不存在其他待定的定义更改
- 在相邻逻辑分区上,不存在任何待定的定义更改,而更改会将已识别分区的限制键移动到该逻辑分区上。

- 对于分区(非UTS)表空间,如果分区由索引控制,那么更改限制键将立即导致定义更改。 在这种情况下,边界两侧的分区处于REORG-pending(REORP)状态,在重组受影响的分区范围之前,数据不可用。
- 运行REORG TABLESPACE实用程序,根据新的限制键值重新分配分区表空间中的数据。
此操作也会重置AREOR或REORP状态。 以下示例指定了有助于在重组数据的同时最大化性能的选项:
REORG TABLESPACE DSN8S12E PART 2:3 NOSYSREC COPYDDN SYSCOPY STATISTICS TABLE INDEX(ALL)此示例重新组织了一系列分区,并包含STATISTICS关键字,这意味着REORG收集了指定分区范围的统计信息。
您可以重新组织一系列分区,即使分区状态不是AREOR或REORP。 但是,您不能只重组处于AREOR或REORP状态的分区子集。 您必须重新组织整个系列,以消除限制状态,并实现任何待定的限制性关键变更。
如果您在处于REORP或咨询REORG-pending(AREOR)状态的分区上运行REORG,请考虑为以下选项设置的值:
- SHRLEVEL
- 当对象处于AREOR或REORP状态时,您可以指定SHRLEVEL REFERENCE或SHRLEVEL CHANGE。 REORG实现了任何待定的定义变更。 如果指定SHRLEVEL NONE,REORG不会实现任何待定的限制键更改,任何限制状态都不会被重置。
- KEEPDICTIONARY
- REORG对处于REORP或AREOR状态的任何分区忽略KEEPDICTIONARY选项。 REORG会自动重建受影响分区的字典。 但是,如果您指定了分区范围,其中包含一些非REORP状态的分区,REORG会为这些非受限分区接受KEEPDICTIONARY选项。
- DISCARDDN和PUNCHDDN
- 当最后一个分区的限制键被减少时,如果表空间被定义为LARGE或DSSIZE,请指定DISCARDDN和PUNCHDDN数据集。 否则,REORG将终止并发送消息 DSNU035I 和返回代码8。
REORG将SYSCOPY记录写入如下:
- 如果REORG运行时有任何分区处于REORP状态, Db2 将为REORG作业中指定的每个分区写入一个STYPE=A的SYSCOPY记录。
- 如果您对一系列分区进行内联图像复制, Db2 会为每个分区写入一个SYSCOPY记录,其中ICTYPE=F。 每个记录具有相同的数据集名称。
如果REORG实现了任何未完成的限制性关键变更,则相关计划和方案将失效。