ALTER TABLESPACE 语句

ALTER TABLESPACE 语句用于更改当前服务器上表空间的描述。

调用 ALTER TABLESPACE

此语句可嵌入应用程序中或者以交互方式发出。 这是一个可执行语句,只有在DYNAMICRULES RUN行为生效时才能动态准备。 更多信息,请参阅授权ID和动态SQL

授权 ALTER TABLESPACE

以下定义的特权套装必须至少包含以下一项:

  • 拥有桌面空间
  • DBADM数据库权限
  • SYSADM 或 SYSCTRL 权限
  • 系统 DBADM
  • 更改开始安装 SYSOPR 权限(当前进程的 SQLID 设置为 SYSINSTL 时)更改结束

如果数据库是隐式创建的,则数据库权限必须位于隐式数据库或 DSNDB04 上。

如果指定了“BUFFERPOOL”或“USING STOGROUP”,则可能需要附加权限,具体说明见这些条款的描述。

权限设置:

如果语句嵌入到应用程序中,权限集就是软件包所有者所拥有的权限。 如果语句是动态准备的,则权限集是进程的每个授权ID和角色所拥有的权限集的并集。

阅读语法图跳过可视化语法图 ALTER TABLESPACE 数据库名称. 表格空间名称 1BUFFERPOOLbpnameCCSIDCCSID值CLOSE YESCLOSE NOCOMPRESS YESCOMPRESS YES FIXEDLENGTHCOMPRESS YES HUFFMANCOMPRESS NODROP PENDING CHANGESDSSIZE整数GINSERT ALGORITHM级别LOCKMAX SYSTEMLOCKMAX 整数LOCKSIZE ANYLOCKSIZE TABLESPACELOCKSIZE TABLELOCKSIZE PAGELOCKSIZE ROWLOCKSIZE LOBLOGGEDNOT LOGGEDMAXROWS整数MAXPARTITIONS整数MEMBER CLUSTER YESMEMBER CLUSTER NOSEGSIZE整数TRACKMOD YESTRACKMOD NOusing-block自由块gbpcache-块PAGENUM RELATIVE ALTER PARTITION整数using-block自由块gbpcache-块COMPRESS YESCOMPRESS YES FIXEDLENGTHCOMPRESS YES HUFFMANCOMPRESS NODSSIZE整数G34TRACKMOD YESTRACKMOD NO移动表从句
注意:
  • 1 FL 508 如果指定 DROP PENDING CHANGES、DSSIZE、SEGSIZE、PAGENUM 或 MOVE TABLE,则在同一个 ALTER TABLESPACE 语句中不能指定任何其他子句。
  • 2 在单个ALTER TABLESPACE语句中,同一条款不得出现多次。
  • 3 DSSIZE 只能在分区级别指定,且仅适用于具有相对页码(PAGENUM RELATIVE)的表空间。
  • 4 指定的 DSSIZE 值必须大于或等于分区当前的 DSSIZE 值。

使用块:

阅读语法图跳过可视化语法图USING VCAT目录名称USING STOGROUP用户组名称PRIQTY整数SECQTY整数ERASE YESERASE NO

自由块:

阅读语法图跳过可视化语法图FREEPAGE整数PCTFREE 5PCTFREEsmallintsmallintFOR UPDATEsmallint

gbpcache-block:

阅读语法图跳过可视化语法图GBPCACHE CHANGEDGBPCACHE ALLGBPCACHE SYSTEMGBPCACHE NONE
更改开始

移动表从句:

更改结束
阅读语法图跳过可视化语法图MOVE TABLEtable-nameTO TABLESPACEdbname.新名称

描述 ALTER TABLESPACE

database-name.table-space-name
标识要更改的表格空间。 名称必须标识当前服务器上存在的表空间。 省略数据库名称即表示默认使用 DSNDB04。

如果识别出分区表空间,则可以使用ALTER PARTITION子句。

更改开始如果表空间与加速器专用表或目录表相关联,则不能更改该表空间。更改结束

BUFFERPOOL bpname
标识用于表空间的缓冲池。 bpname 必须标识已激活的缓冲池。

特权集必须包括 SYSADM 或 SYSCTRL 权限或缓冲池的 USE 权限。

如果 bpname 指定的缓冲池的页面大小小于当前页面大小,则表空间中所有表的最大记录大小必须适合较小的页面大小。

如果 bpname 指定了具有不同页面大小的缓冲池,则表空间必须为以下类型之一:
  • 通用表空间(不包括XML表空间)
  • 更改开始待定定义更改将把表空间转换为通用表空间的表空间更改结束
  • LOB 桌面空间
如果表空间是分区增长型表空间,则页面大小必须有效,具体取决于表空间 MAXPARTITIONS 和 DSSIZE 选项的生效值。 如果表空间是分区范围表空间,则页面大小必须有效,具体取决于当前分区数和表空间 DSSIZE 选项的值。 有关DSSIZE、MAXPARTITIONS、缓冲池页面大小和表空间大小之间关系的更多信息,请参阅最大分区数和表空间大小

根据指定此条款时的具体情况, Db2 可能会将ALTER语句视为待定的数据定义变更 ,这意味着当前对象定义和数据在语句发出时不会反映变更。 相反,更改后的对象被置于待重组(AREOR)状态,随后使用适当的实用程序对更改后的对象进行重组,从而将更改反映到目录和数据中。 更多信息,请参阅待定的数据定义变更

当为按增长分区(PBG)表空间的 BUFFERPOOL、DSSIZE、MAXPARTITIONS 或 SEGSIZE 属性指定待定义更改时,分区数量将根据应用待定义更改时现有数据的数量确定,并且可能会发生分区增长。 如果存在LOB列,则无论SQLRULES ( DB2 )或SQLRULES (STD)是否生效,也无论表空间是显式创建还是隐式创建,都会为新创建的分区隐式创建额外的LOB表空间和辅助对象。 新的LOB对象继承了现有LOB对象的缓冲池属性和授权。

更改开始对于两个缓冲池页面大小相同的立即更改,表空间和所有数据集都是立即可用的。 数据集无需关闭并重新打开即可使用表空间。 此外, Db2 会自动关闭所需的数据集。 表空间的描述在下一次打开表空间的数据集时生效。更改结束

CCSID ccsid-value
标识用于表空间的CCSID值。 ccsid-value 必须标识一个与表空间 CCSID 的当前值兼容的 CCSID 值。 请参阅 ALTER DATABASE语句 ,其中列出了特定CCSID可以更改为的CCSID以及更改的详细信息。

请勿为LOB表空间、为XML列隐式创建的表空间或工作文件数据库中的表空间指定CCSID。

如果满足以下条件之一,则无法更改表空间的 CCSID:

  • 表格空间包含任何具有包含表达式的索引的表格。
  • 表格空间包含系统周期临时表或历史表。
  • 表格空间包含一个启用存档功能的表格或一个存档表格。
CLOSE
当开放数据集的数量达到上限时,指定关闭数据集的优先级。
YES
在收盘前有资格收盘,无数据集。 除非表格空间位于工作文件数据库中,否则默认设置是如此。
NO
在所有符合条件的CLOSE YES数据集关闭后,才符合关闭条件。
对于工作文件数据库中的表空间Db2 使用CLOSE NO,而不管指定的值是什么
COMPRESS
指定数据压缩是应用于表空间的行还是表空间中的分区。

更改开始请勿为工作文件数据库中的表空间指定 COMPRESS。更改结束

YES
FL 509 指定数据压缩用于表空间或分区。 在表空间或分区中的表上运行LOAD或REORG实用程序之前,或者在执行插入操作时,直到总行数据大小达到压缩数据阈值之前,行都不会被压缩。
更改开始FL 500如果未指定压缩算法的关键字,则使用默认压缩算法:
  • 数据压缩算法由TS_COMPRESSION_TYPE子系统参数决定。
  • 更改开始如果表空间是 LOB 表空间,还必须满足以下要求:
    • Db2 12 必须达到功能级别500 或更高
    • 硬件和软件必须可用且配置正确。 zEDC 硬件和软件必须可用,并配置在 z/OS® 系统中。 更多信息,请参阅 zEnterprise 数据压缩要求

      在数据共享中,如果成员访问压缩的LOB数据,且 zEDC 硬件和软件未配置为 z/OS

    • LOB表空间必须与通用表空间中的基础表相关联。
    • 整个LOB的总长度必须大于定义的数据页面大小,否则LOB不会被压缩。
    更改结束
更改结束
更改开始
固定长度
FL 509 指定固定长度数据压缩算法。

LOB表空间不能指定固定长度。 为该表空间中的LOB列隐式创建的任何LOB表空间,其定义方式与指定了压缩算法但未指定压缩算法的情况相同。 LOB压缩由 zEnterprise® 数据压缩( zEDC ) 硬件管理,该硬件必须在 z/OS 系统上。

胡夫曼
FL 509 指定霍夫曼数据压缩算法。 请参阅 “使用霍夫曼压缩来压缩数据 ”,了解启用霍夫曼压缩的要求。

HUFFMAN 必须仅用于通用表空间,不能用于包含使用 ORGANIZE BY HASH 定义的表的表空间。

LOB表空间不能指定HUFFMAN。 为该表空间中的LOB列隐式创建的任何LOB表空间,其定义方式与指定了压缩算法但未指定压缩算法的情况相同。 LOB压缩由 zEnterprise 数据压缩( zEDC ) 硬件管理,该硬件必须在 z/OS 系统上。

更改结束
NO
指定不进行数据压缩。 插入的行不会被压缩。 更新后的行将被解压缩。 当运行LOAD REPLACE、LOAD RESUME NO或REORG实用程序时,用于数据压缩的字典将被删除。 有关字典和数据压缩的更多信息,请参阅压缩数据
DROP PENDING CHANGES
在更改表空间和表空间中任何对象的定义之前,请暂停操作。 在更改表格空间定义之前,表格空间内必须存在任何对象。

当指定了“DROP PENDING CHANGES”子句时,在同一ALTER TABLESPACE语句中不允许使用其他选项。

DROP PENDING CHANGES子句还会重置咨询性REORG-pending(AREOR)状态,但转换为哈希访问的表除外。

DSSIZE 整数 G
更改开始FL 500 规定了以千兆字节为单位的最大数据集大小。 DSSIZE只能用于以下类型的表格空间:
  • 按分区增长或按分区范围划分表空间
  • 更改开始待定定义更改将把表空间转换为通用表空间的表空间更改结束
  • LOB 桌面空间
因此,DSSIZE值指定通用表空间分区或LOB表空间中任何数据集的最大大小。 指定 DSSIZE 后,在同一条 ALTER TABLESPACE 语句中不允许使用其他选项。 更改结束

要指定大于 4G 的值,表空间的数据集必须与 DFSMS 数据类相关联,该数据类已指定扩展格式和扩展寻址。

更改开始在表空间级别指定的 DSSIZE 将应用于表空间的每个分区。更改结束

整数可以与G相隔0个或更多空格。

您可以指定的公认值取决于表空间的类型。

按增长分列
指定一个介于1到256之间的2的幂次幂值。
更改开始使用相对页码按范围分区更改结束
更改开始指定任意值 1-1024 G。 以下值按照所示优先级顺序确定每个分区的 DSSIZE 值:
  1. 该分区中PARTITION子句中的DSSIZE值。
  2. DSSIZE值在表空间级别指定,而不是在PARTITION子句中指定。
  3. 默认值: 4G。
更改结束
更改开始基于范围的分区与绝对页码编号更改结束
指定一个2的幂次数值,范围为1-256 G。

根据指定此条款时的具体情况, Db2 可能会将ALTER语句视为待定的数据定义变更 ,这意味着当前对象定义和数据在语句发出时不会反映变更。 相反,更改后的对象被置于待重组(AREOR)状态,随后使用适当的实用程序对更改后的对象进行重组,从而将更改反映到目录和数据中。 更多信息,请参阅待定的数据定义变更

当为按增长分区(PBG)表空间的 BUFFERPOOL、DSSIZE、MAXPARTITIONS 或 SEGSIZE 属性指定待定义更改时,分区数量将根据应用待定义更改时现有数据的数量确定,并且可能会发生分区增长。 如果存在LOB列,则无论SQLRULES ( DB2 )或SQLRULES (STD)是否生效,也无论表空间是显式创建还是隐式创建,都会为新创建的分区隐式创建额外的LOB表空间和辅助对象。 新的LOB对象继承了现有LOB对象的缓冲池属性和授权。

更改开始输入算法级别更改结束
更改开始FL 500指定向该表空间的表中插入行时使用的算法。 插入算法级别仅在适用时使用(成员集群UTS)。 表空间插入算法的更改会立即生效。
1
指定使用基本插入算法。
2
指定使用插入算法2。
重要提示: 插入算法级别只能更改为1级或2级。 CREATE TABLESPACE支持的0级不支持ALTER TABLESPACE。
更改结束
LOCKMAX
指定应用程序进程在表空间中可同时持有的最大页面、行或LOB锁数量。 如果程序请求的数量超过此限制,则锁会升级。 页锁、行锁或LOB锁被释放,表空间或分段(非UTS)表的意向锁提升为S或X模式。 如果您在工作文件数据库中为表空间指定了 LOCKMAX a, Db2 会忽略该值,因为不使用此类锁。
整数
指定升级前允许的锁数量,范围为0-2147483647。

零(0)表示桌子或桌子空间上的锁数量不计入升级。

SYSTEM
更改开始FL 507 指定 Db2 从 SYSIBMADM.MAX_LOCKS_PER_TABLESPACE 内置全局变量中确定程序在表空间中可同时持有的最大锁数。

相关信息请参阅 SYSIBMADM.MAX_LOCKS_PER_TABLESPACE

更改结束
如果更改 LOCKSIZE 并省略 LOCKMAX,则会出现以下结果:
LOCKSIZE 最终锁紧力矩
表格空间或表格 0
页面、行或LOB 无更改
任何 SYSTEM

如果锁的大小是表空间或表,则必须省略 LOCKMAX,或者其操作数必须为 0。

LOCKSIZE
指定表格空间内使用的锁的大小,在某些情况下,还指定升级锁的阈值。 请勿在工作文件数据库中为表格空间指定锁定大小。
ANY
指定 Db2 可以使用任何大小的锁。

在大多数情况下, Db2 对非LOB表空间使用LOCKSIZE PAGE LOCKMAX SYSTEM,对LOB表空间使用LOCKSIZE LOB LOCKMAX SYSTEM。 但是,当为表空间获取的锁数量超过表空间允许的最大锁数量(安装参数)时,页面或LOB锁将被释放,锁定级别将提高一级。 如果表格空间被分割,则下一个更高级别的空间就是表格。 如果表格空间没有分割,则下一个更高级别是表格空间。

TABLESPACE
指定表空间锁。
TABLE
指定餐桌锁。 仅对分段(非UTS)表空间使用TABLE。 请勿将TABLE用作通用表空间。
PAGE
指定页面锁定。 请勿将页面用于LOB表空间。
ROW
指定行锁。 请勿将行(ROW)用于LOB表空间。
LOB
指定LOB锁。 仅将LOB用于LOB表空间。

如果动态 SQL 语句在更改后准备并执行,则 LOCKSIZE 更改会影响该语句。 如果静态 SQL 语句在更改后执行,则 LOCKSIZE 更改会影响该语句。

LOGGED 或者 NOT LOGGED
指定是否将指定表空间中的数据更改记录在日志中。
LOGGED
指定对指定表空间中的数据进行更改时,将记录在日志中。 这适用于指定表空间中的所有表以及这些表的所有索引。 为XML列创建的表空间和索引从关联的基表空间继承日志记录属性。 辅助索引从关联的基表空间继承日志记录属性。 这可能会影响关联的LOB表空间的日志记录属性。 有关更多信息, 参见 “更改表空间的日志记录属性 ”。

如果基础表空间处于信息复制等待状态(意味着已对表空间进行了更新),当您从“未登录”切换到“已登录”时,基础表空间将处于复制等待状态。 表空间中所有表的索引均保持当前状态不变;也就是说,如果某个索引当前处于信息复制待处理状态,则将保持该状态。

为LOB表空间指定LOGGED时,基础表空间也需要指定LOGGED参数。

XML表格空间不能指定LOGGED。 XML表空间的日志记录属性从其基础表空间继承而来。

LOGGED不能指定为表格空间, DSNDB06Db2 目录)或工作文件数据库中。

NOT LOGGED
指定对指定表空间中的数据所做的更改不记录在日志中。 这适用于指定表空间中的所有表以及这些表的所有索引。 为XML列创建的表空间和索引从关联的基表空间继承日志记录属性。 辅助索引从关联的基表空间继承日志记录属性。 此参数会影响关联的 LOB 表空间的日志记录属性。 更多信息,请参阅更改表空间的日志记录属性

未登录(NOT LOGGED)可防止撤销和重做信息记录在基础表空间的日志中;但是,指定基础表空间的控制信息将继续记录在日志中。 对于LOB表空间,系统页面和辅助索引的更改都会被记录下来。

未登录与CREATE TABLE和ALTER TABLE的DATA CAPTURE CHANGES参数互斥。 如果表格空间中的任何表格指定了“数据捕获更改”,则“未登录”将不适用于该表格空间。

XML表格空间不能指定“未登录”。

以下数据库中的表格空间不能指定“未登录”:

  • DSNDB06Db2 目录)
  • 工作文件数据库
MAXROWS 整数
指定 Db2 在每个数据页面上最多可放置的行数。 整数范围从1到255。

对于新添加的行,更改立即生效。 然而,某些页面的空间类设置可能不正确,可能导致无效的页面访问。 强烈建议在更改MAXROWS后重新组织表格空间。

在运行了ALTER TABLESPACE with MAXROWS之后,表空间将处于待重组(REORG-pending)状态。 运行REORG TABLESPACE实用程序以删除状态。

不要为LOB表空间、为XML列隐式创建的表空间、工作文件数据库中的表空间或目录中允许的SQL语句下列出的 Db2 目录表空间指定MAXROWS。

MAXPARTITIONS 整数
指定表空间按增长进行分区。 integer 指定表空间可增长或缩减的最大分区数。 整数必须在1到4096的范围内,具体取决于DSSIZE的值和表空间的页面大小,且不能小于已经为表空间分配的物理分区数量。 有关DSSIZE、MAXPARTITIONS、缓冲池页面大小和表空间大小之间关系的更多信息,请参阅最大分区数和表空间大小

MAXPARTITIONS只能用于包含一个表的简单表空间、包含一个表的分段(非UTS)表空间或按增长分区的表空间。 表格空间必须包含由 Db2 管理的数据集。

根据指定此条款时的具体情况, Db2 可能会将ALTER语句视为待定的数据定义变更 ,这意味着当前对象定义和数据在语句发出时不会反映变更。 相反,更改后的对象被置于待重组(AREOR)状态,随后使用适当的实用程序对更改后的对象进行重组,从而将更改反映到目录和数据中。 更多信息,请参阅待定的数据定义变更

虽然发布 MAXPARTITIONS 值时没有定义物理数据集,但可能会产生存储和 CPU 开销。 如果使用MAXPARTITONS子句预计分区数量会增加,请注意,为所有按增长分区表空间指定一个大于实际需要的值(例如4096,即最大值)作为默认值,可能会导致超出预期的存储请求。

更改开始FL 508如果在简单或分段(非 UTS)表空间上指定了 MAXPARTITIONS,则该表空间将转换为按分区增长的表空间,可增长到最大整数分区数。如果存在从表格空间移动表格的待定义更改,则整数必须为 1。 如果转换前的SEGSIZE小于32,则SEGSIZE默认为32。 否则,SEGSIZE的值将继承自原始表空间。 DSSIZE 设置为默认的 4 千兆字节。更改结束

如果表空间的数据集未定义,则在从简单或分段(非UTS)表空间转换为按增长分区表空间时,分区数被设置为1。

当为按增长分区(PBG)表空间的 BUFFERPOOL、DSSIZE、MAXPARTITIONS 或 SEGSIZE 属性指定待定义更改时,分区数量将根据应用待定义更改时现有数据的数量确定,并且可能会发生分区增长。 如果存在LOB列,则无论SQLRULES ( DB2 )或SQLRULES (STD)是否生效,也无论表空间是显式创建还是隐式创建,都会为新创建的分区隐式创建额外的LOB表空间和辅助对象。 新的LOB对象继承了现有LOB对象的缓冲池属性和授权。

如果表空间使用 LOCKSIZE TABLE 定义,则在转换为按增长分区表空间时,锁的大小将重置为 LOCKSIZE TABLESPACE。

MEMBER CLUSTER YES 或者 MEMBER CLUSTER NO
指定表空间是否使用MEMBER CLUSTER页面集结构。 更改开始MEMBER CLUSTER 子句只能为按增长分区或按范围分区的表空间指定,或为待定 义更改将把表空间转换为通用表空间的表空间指定。 更改结束

根据指定此条款时的具体情况, Db2 可能会将ALTER语句视为待定的数据定义变更 ,这意味着当前对象定义和数据在语句发出时不会反映变更。 相反,更改后的对象被置于待重组(AREOR)状态,随后使用适当的实用程序对更改后的对象进行重组,从而将更改反映到目录和数据中。 更多信息,请参阅待定的数据定义变更

MEMBER CLUSTER YES
指定当表空间已定义为按增长分区或按范围分区表空间时,将使用成员集群页面集结构来指定表空间。

成员集群 不能为LOB、工作文件或XML表空间指定YES,也不能为哈希访问而组织的表空间指定YES。

MEMBER CLUSTER NO
指定当表空间已定义为按增长分区或按范围分区的表空间时,表空间不使用MEMBER CLUSTER页面集结构。 如果通用表空间已定义为使用MEMBER CLUSTER页面集结构,则在ALTER TABLESPACE语句中指定 MEMBER CLUSTER NO ,则从表空间中删除MEMBER CLUSTER页面集结构。
SEGSIZE 整数
指定表空间是一个通用表空间,其中整数指定分配给表空间每个分段的页数。 整数必须是4到64(含)之间的4的倍数。 当指定了 SEGSIZE 时,在同一 ALTER TABLESPACE 语句中不允许使用其他选项。

SEGSIZE只能用于通用表空间或使用表控制的分区功能的分区表空间。

根据指定此条款时的具体情况, Db2 可能会将ALTER语句视为待定的数据定义变更 ,这意味着当前对象定义和数据在语句发出时不会反映变更。 相反,更改后的对象被置于待重组(AREOR)状态,随后使用适当的实用程序对更改后的对象进行重组,从而将更改反映到目录和数据中。 更多信息,请参阅待定的数据定义变更

当为按增长分区(PBG)表空间的 BUFFERPOOL、DSSIZE、MAXPARTITIONS 或 SEGSIZE 属性指定待定义更改时,分区数量将根据应用待定义更改时现有数据的数量确定,并且可能会发生分区增长。 如果存在LOB列,则无论SQLRULES ( DB2 )或SQLRULES (STD)是否生效,也无论表空间是显式创建还是隐式创建,都会为新创建的分区隐式创建额外的LOB表空间和辅助对象。 新的LOB对象继承了现有LOB对象的缓冲池属性和授权。

如果现有的自由页值(可留空页数)大于或等于新的 SEGSIZE 值,则页数将调整为比新的 SEGSIZE 值少一页。

如果表空间是分区表空间,则分区表空间将转换为按范围分区(UTS)表空间,其中段大小由整数指定。 成员集群属性是从原始表空间继承而来的。 分区数量从原始表空间继承。 如果原始 DSSIZE 属性的值为 0,则 DSSIZE 设置为原始的最大分区大小。 否则,DSSIZE属性将从原始表空间继承。

TRACKMOD
指定 Db2 是否跟踪表空间或分区空间地图页面中的修改页面。 请勿为LOB表空间或工作文件数据库中的表空间指定TRACKMOD。

要使更改后的TRACKMOD选项生效,需要停止并重新启动表格空间或分区。 可通过运行STOP DATABASE命令和START DATABASE命令,或通过在表空间或分区上运行REORG实用程序来停止和重新启动表空间或分区。 更多信息,请参阅 -STOP DATABASE 命令( Db2和 -START DATABASE 命令( Db2 )。

YES
Db2 在空间地图页面中更改了跟踪的页面,以提高增量图像复制的性能。 为了共享数据,将TRACKMOD更改为YES会导致额外的SCA(共享通信区域)存储被使用,直到下一次完整或增量镜像复制完成或TRACKMOD被重新设置为NO。
NO
Db2 不跟踪空间地图页面中的更改页面。 它使用每个页面中的LRSN值来确定页面是否被修改过。
FREEPAGE 整数
指定在加载或重新组织表格空间时,每隔多长时间留出空白页。 整数页后保留一个空白页; 整数范围是0-255。 自由页 0 没有空闲页。 不要为LOB表空间、为XML列隐式创建的表空间或工作文件数据库中的表空间指定FREEPAGE。

如果表格空间被分割,则剩余的可用页数必须小于 SEGSIZE 值。 如果需要留出的空白页数大于或等于 SEGSIZE 值,则将页数向下调整,使其比 SEGSIZE 值少一页。

在加载或重新组织表空间或分区中的数据之前,对表空间或分区描述的更改不会产生任何影响。

更多信息,请参阅当前时间系统_时间特殊寄存器

PCTFREE 小数
指定加载或重新组织表格空间时,每页应保留多少百分比的空间作为自由空间。 默认值为PCTFREE 5,表示每个数据页上预留5%的空间作为可用空间。 每页的第一个记录不受限制地加载。 加载其他记录时,每页至少留有整数百分比的可用空间。 整数范围是0-99。 请勿为LOB表空间、为XML列隐式创建的表空间或工作文件数据库中的表空间指定PCTFREE。
更新小数
指定每页上预留的可用空间百分比,供后续更新操作使用。 小数值是一个介于 -1 到99之间的整数。 更新 -1 指定最初保留 5% 的可用空间,可用空间的大小根据某些实时统计值自动计算。 每页上的第一个记录总是无限制加载的。

如果未指定该值,则使用 PCTFREE_UPD 子系统参数的值。

该值记录在 SYSIBM.SYSTABLEPART 目录表的PCTFREE_UPD列中。

FOR UPDATE smallint 值不适用于 LOB 表空间、XML 表空间或使用哈希组织的表空间。

PCTFREE smallintFOR UPDATE smallint 的值之和必须小于或等于99。

如果未指定 FOR UPDATE smallint ,且 PCTFREE smallint 和子系统参数 PCTFREE_UPD 的总和大于或等于 99,则 Db2 会使用较小的 PCTFREE_UPD 值。

在加载或重新组织表空间或分区中的数据之前,对表空间或分区描述的更改不会产生任何影响。

更多信息,请参阅当前时间系统_时间特殊寄存器

USING
指定表空间或分区的数据集是由用户管理还是由 Db2 系统管理。 如果表空间被分区,则 USING 适用于 ALTER PARTITION 子句中标识的分区数据集。 如果表空间是分区增长表空间,则只能在表空间级别指定 USING。 如果表空间未分区,则 USING 适用于符合表空间条件的每个数据集。 (如果 PRIQTY+118 × SECQTY至少为2GB,则非分区表空间可以有多个数据集。)
如果指定了 USING 子句,则在执行 ALTER TABLESPACE 语句时,表空间或分区必须处于停止状态。 请参阅 “更改存储属性 ”,了解更改如何生效以及何时生效。 如果表空间位于工作文件数据库中,则无需指定 USING 子句。
VCAT 目录名称
指定表空间的用户管理数据集。

数据集是VSAM线性数据集,在集成目录工具目录中编目, 目录名称为 有关目录名称值的更多信息,请参阅 SQL中的命名约定

多个 Db2 子系统可以与当前服务器共享集成目录设施目录。 为了避免这些子系统尝试为不同的数据集指定相同名称,请指定一个其他 Db2 子系统未使用的目录名称值

如果表空间是按增长分区表空间,则不得指定 VCAT 条款。

STOGROUP stogroup-name
指定一个由 Db2 管理的数据集,该数据集位于已识别的存储组的一个卷上。 stogroup-name 必须标识当前服务器上存在的存储组,权限集必须包括 SYSADM 权限、SYSCTRL 权限或存储组的 USE 权限。 当应用新的表空间描述时,存储组的描述必须至少包含一个卷序列号,每个卷序列号必须标识一个 z/OS 可以访问的卷,以便动态分配数据集,并且所有标识的卷必须具有相同的设备类型。 此外,用于存储组的集成目录设施目录不得包含数据集的条目。

如果您指定了 USING STOGROUP,并且表空间或分区的当前数据集由 Db2 管理:

  • 省略PRIQTY条款即隐含指定当前PRIQTY值。
  • 省略SECQTY条款即默示当前SECQTY值。
  • 省略“ERASE”条款即默示遵守现行“ERASE”规则。

如果您指定使用STOGROUP将用户管理的数据集转换为 Db2 管理的数据集:

  • 省略PRIQTY条款即默示默认值。
  • 省略SECQTY条款即默示默认值。
  • 省略“删除”条款即默示“不删除”。

更多信息,请参阅主要和次要空间分配规则

PRIQTY 整数
指定 Db2 管理的表空间或分区数据集的最小主空间分配。 integer 必须是正整数,或者 -1。 仅当数据集由 Db2 管理且符合以下条件之一时,方可使用本条款:
  • 指定使用STOGROUP。
  • 未指定使用条款。

通常,当您指定PRIQTY为正整数时,主空间分配至少为n千字节 ,其中 n 为整数。 但以下情况除外:

对于非LOB表空间,例外情况如下:

  • 对于 4KB 页面大小,如果整数大于0且小于12,则 n 为12。
  • 对于 8KB 页面大小,如果整数大于0且小于24,则 n 为24。
  • 对于 16KB 页面大小,如果整数大于0且小于48, 则n 为48。
  • 对于 32KB 页面大小,如果整数大于0且小于96,则 n 为96。
  • 对于任何页面大小,如果整数大于67108864,则 n 为67108864。

LOB表空间例外情况如下:

  • 对于 4KB 页面大小,如果整数大于0且小于200, 则n 为200。
  • 对于 8KB 页面大小,如果整数大于0且小于400, 则n 为400。
  • 对于 16KB 页面大小,如果整数大于0且小于800, 则n 为800。
  • 对于 32KB 页面大小,如果整数大于0且小于1600, 则n 为1600。
  • 对于任何页面大小,如果整数大于67108864,则 n 为67108864。

PRIQTY的最大允许值为 64GB (67108864千字节)。

如果您指定了PRIQTY的值 -1 , Db2 将使用默认值进行主空间分配。 有关 Db2 如何确定主空间分配的默认值的信息,请参阅主空间和次空间分配规则

如果省略了 PRIQTY,并指定了 USING STOGROUP,则 PRIQTY 的值为当前值。 (但是,如果当前数据集从用户管理更改为 Db2 管理,则该值为其默认值。 请参阅使用STOGROUP的说明。)

如果您指定了PRIQTY,但没有指定 -1 的值,则 Db2 将使用 p KB 的最小倍数(不小于 n) 来指定访问方法服务的主要空间分配,其中 p 是表空间的页面大小。 分配的空间可能大于 Db2 所申请的空间。 例如,可能只有最少的曲目数量能够满足要求。 要更精确地估计实际存储量,请参阅 DEFINE CLUSTER 命令

已识别存储组中至少有一个卷必须具有足够的空间来容纳主数量。 否则,首要的空间分配将无法实现。

要确定PRIQTY的更改何时生效,请参阅更改存储属性

SECQTY 整数
指定 Db2 管理的表空间或分区数据集的最小辅助空间分配。 整数必须为正整数、0或 -1。 仅当数据集由 Db2 管理且符合以下条件之一时,方可使用本条款:
  • 指定使用STOGROUP。
  • 未指定使用条款。

如果您指定SECQTY的值为 -1 ,则 Db2 将使用默认值进行辅助空间分配。

如果指定了 USING STOGROUP,而省略了 SECQTY,则 SECQTY 的值为其当前值。 (但是,如果当前数据集从用户管理更改为 Db2 管理,则该值为其默认值。 请参阅使用STOGROUP的说明。)

有关用于辅助空间分配的实际值的信息,无论您指定了值还是 Db2 使用了默认值,请参阅主空间和辅助空间分配规则

当指定 SECQTY 的值为正整数时,实际使用的辅助数量就是该整数值,但非LOB 表空间除外:

  • 对于 4KB 页面大小,如果整数大于0且小于12,则 n 为12。
  • 对于 8KB 页面大小,如果整数大于0且小于24,则 n 为24。
  • 对于 16KB 页面大小,如果整数大于0且小于48, 则n 为48。
  • 对于 32KB 页面大小,如果整数大于0且小于96,则 n 为96。
  • 对于任何页面大小,如果整数大于67108864,则 n 为67108864。

对于 LOB 表空间,适用以下例外情况:

  • 对于 4KB 页面大小,如果整数大于0且小于200, 则n 为200。
  • 对于 8KB 页面大小,如果整数大于0且小于400, 则n 为400。
  • 对于 16KB 页面大小,如果整数大于0且小于800, 则n 为800。
  • 对于 32KB 页面大小,如果整数大于0且小于1600, 则n 为1600。
  • 对于任何页面大小,如果整数大于67108864,则 n 为67108864。

要确定SECQTY更改如何生效以及何时生效,请参阅更改存储属性

ERASE
指示在执行删除表空间的实用程序或SQL语句时,是否在删除之前先删除 Db2 管理的表空间或分区数据集。
NO
不会删除数据集。 涉及数据集删除的操作将比“ERASE YES”执行得更好。 不过,数据仍然可以访问,但不是通过 Db2
YES
删除数据集。 作为安全措施, Db2 在删除数据集中的所有数据前,会用0覆盖这些数据。

仅当数据集由 Db2 管理且符合以下条件之一时,方可使用本条款:

  • 指定使用STOGROUP。
  • 未指定使用条款。

如果指定ERASE,则在执行ALTER TABLESPACE语句时,表空间或分区必须处于停止状态。 如果为分区表空间指定了ERASE,则还必须指定ALTER PARTITION子句。 请参阅 “更改存储属性 ”,了解更改如何生效以及何时生效。

GBPCACHE
在数据共享环境中,指定在数据共享环境中将表空间或分区的哪些页面写入组缓冲池。 在非数据共享环境中,您可以为工作文件数据库以外的表空间指定 GBPCACHE,但会被忽略。 无论是否共享数据,都不要在任一环境的工作文件数据库中为表空间指定GBPCACHE。 此外,您不能更改某些 Db2 目录表空间的GBPCACHE值;有关这些表空间的列表,请参阅目录上允许的SQL语句
CHANGED
当对表空间或分区存在互Db2 读/写操作时,更新后的页面将写入组缓冲池。 当没有互Db2 读/写操作时,不使用组缓冲池。 当数据共享组中不止一个成员打开表空间或分区,且至少有一个成员打开表空间或分区进行更新时,就存在跨Db2 R/W 权限。

如果表空间位于定义为仅用于交叉失效(GBPCACHE NO)的组缓冲池中,则“已更改”将被忽略,且不会将任何页面缓存到组缓冲池中。

ALL
指示页面在从DASD读取时缓存到组缓冲池中。

例外 :如果仅更新 Db2 ,且其他 Db2 子系统对页面集不感兴趣,则不会在组缓冲池中缓存任何页面。

如果表空间位于定义为仅用于交叉失效(GBPCACHE NO)的组缓冲池中,则ALL将被忽略,且不会将任何页面缓存到组缓冲池中。

SYSTEM
表示只有LOB表空间中更改过的系统页面才会缓存在组缓冲池中。 系统页面是指空间地图页面或任何其他不包含实际数据值的页面。

仅对LOB表空间使用SYSTEM。

NONE
表示不将任何页面缓存在组缓冲池中。 Db2 仅将组缓冲池用于交叉验证。

如果指定 NONE,则在执行 ALTER TABLESPACE 语句时,表空间或分区不得处于待恢复状态。

如果在数据共享环境中指定 GBPCACHE,则在执行 ALTER TABLESPACE 语句时,表空间或分区必须处于停止状态。

更改开始页码更改结束
更改开始FL 500指定更改按范围分区的表空间时使用的页码类型。
RELATIVE
表示内部页面编号保留为4字节值,不带分区号。 页码是从分区开始算起的相对页码,分区号仅保留在页眉中。

如果表格的极限键值被截断,则表格空间不能更改为相对页码。

根据指定此条款时的具体情况, Db2 可能会将ALTER语句视为待定的数据定义变更 ,这意味着当前对象定义和数据在语句发出时不会反映变更。 相反,更改后的对象被置于待重组(AREOR)状态,随后使用适当的实用程序对更改后的对象进行重组,从而将更改反映到目录和数据中。 更多信息,请参阅待定的数据定义变更

更改结束
ALTER PARTITION 整数
指定要更改已识别的表空间分区。 对于有 n个分区的表空间,您必须指定一个介于1 到n 之间的整数。 对于非分区表空间、LOB表空间或按增长分区表空间 ,不得使用此子句 至少应明确以下条款之一:
  • COMPRESS
  • 更改开始DSSIZE更改结束
  • 擦除
  • FREEPAGE
  • GBPCACHE
  • PCTFREE
  • PRIQTY
  • SECQTY
  • trackmod
  • USING
这些条款规定的更改仅影响指定的分区。

对于为XML列隐式创建的表空间分区,请勿为ALTER PARTITION指定以下子句。

  • CCSID
  • FREEPAGE
  • 最大行数
  • PCTFREE
更改开始MOVE TABLE 表名 TO TABLESPACEdbname.new-tsname更改结束
更改开始FL 508 指定将表名指定的表移动到另一个表空间。 new-tsname 指定要移动表的目标表空间, dbname 指定包含目标表空间的数据库。 省略 dbname 即隐式指定 DSNDB04。 特权集必须包括 SYSADM 或 SYSCTRL 权限,或者目标表空间使用的缓冲池和存储组的 USE 权限。
以表名指定的表必须满足以下要求:
  • 存在于当前服务器上
  • 在源表空间中定义
  • 未指定视图
  • 如果更改是待处理的更改,则处于完整状态
  • OBID值不为1
database-name.table-space-name 必须满足以下要求:
  • 不要成为目录或目录表空间
  • 不在工作文件数据库中占表空间
  • 创建一个简单或分段(非UTS)的表格空间
dbname.new-tsname 的目标表空间必须满足以下要求:
  • 不要成为目录或目录表空间
  • 与源表空间位于同一数据库中
  • 按增长情况划分分区,成为通用表格空间
  • 更改开始尚未创建数据集更改结束
  • 更改开始用 MAXPARTITIONS 1 进行定义更改结束
  • 与源表空间具有相同的编码方案和CCSID三元组
  • 定义缓冲池,其页面大小应与移动表的记录长度相符
  • 与源表空间具有相同的LOGGED属性

根据指定此条款时的具体情况, Db2 可能会将ALTER语句视为待定的数据定义变更 ,这意味着当前对象定义和数据在语句发出时不会反映变更。 相反,更改后的对象被置于待重组(AREOR)状态,随后使用适当的实用程序对更改后的对象进行重组,从而将更改反映到目录和数据中。 更多信息,请参阅待定的数据定义变更

在运行REORG实用程序以应用待定的MOVE TABLE操作之前,执行以下任一操作都会导致REORG任务失败:
  • 更改目标表空间,使其属性对移动表操作无效
  • 删除并重新创建目标表空间,无论表空间属性是否有效
有关从废弃的表空间移动表的信息,请参阅将表从多表表空间移动到按增长分区表空间
更改结束

备注 ALTER TABLESPACE

ALTER TABLESPACE和插入操作在同一提交范围内
当在同一提交范围内,ALTER TABLESPACE语句后跟插入操作时,可能会出现问题。 如果发生这种情况,请在ALTER TABLESPACE和插入操作之间添加COMMIT语句。
运行实用程序
Db2 实用程序控制表空间时,不能执行ALTER TABLESPACE语句。
更改多个分区
要更改多个分区的 FREEPAGE、PCTFREE、USING、PRIQTY、SECQTY、ERASE 或 GBPCACHE,必须使用单独的 ALTER TABLESPACE 语句。
主要和次要空间分配规则
您可以指定主空间和次空间分配,也可以让 Db2 来选择。 让 Db2 选择数值,尤其是辅助空间数量,可以增加在超出范围之前达到最大数据集大小的可能性。 欲了解更多信息,请查看 Db2 空间分配
更改存储属性
USING、PRIQTY、SECQTY和ERASE子句定义了表空间或分区的存储属性。 如果在更改存储属性时指定了 USING 或 ERASE,则在执行 ALTER TABLESPACE 语句时,表空间或分区必须处于停止状态。 您可以使用“停止数据库”功能……SPACENAM…命令用于停止表空间或分区。

如果目录名称发生更改,请在移动数据并使用“启动数据库”启动表空间或分区后,更改才会生效SPACENAM…命令。 目录名称可以通过ALTER TABLESPACE语句进行隐式或显式更改。 当您将数据移动到其他设备时,目录名称也会随之改变。 请参阅 “工具”中的 Db2 数据移动步骤。

辅助空间分配(SECQTY)的更改将在 Db2 扩展数据集的下次生效;但是,在您对表空间或分区使用REORG、RECOVER或LOAD REPLACE实用程序之前,新值不会反映在集成目录中。 其他存储属性的更改将在下次重置页面设置时生效。 对于非LOB表空间,当您对表空间或分区使用REORG、RECOVER或LOAD REPLACE实用程序时,页面集将被重置。 对于LOB表空间,当LOB表空间运行“恢复”操作或关联的基础表空间运行“加载替换”操作时,页面集将被重置。 如果存储空间不足以满足主要空间分配,REORG可能会失败。 如果您更改主空间分配参数或删除规则,则可以在启动表空间或分区之前移动数据,使更改提前生效。

LOB表空间推荐GBPCACHE设置
对于 LOB 表空间,请使用 GBPCACHE CHANGED 选项,而不是 GBPCACHE SYSTEM 选项。 根据LOB的使用模式,使用GBPCACHE CHANGED有助于避免对磁盘和组缓冲池进行过多和同步的写入。
更改开始增加分区表空间的大小更改结束
更改开始根据应用程序的需要,您可能需要通过以下操作之一来增加分区表空间的大小:更改结束
更改使用哈希组织的表的表空间
表空间的某些属性,例如缓冲池和页面大小,可能会影响使用哈希组织的表的性能。 与表的哈希组织相关的更改将被验证,并可能生成 CREATE TABLE语句ALTER TABLE语句中描述的错误消息。
已弃用的功能: FL 504 已弃用哈希表。 从 Db2 12 开始,使用APPLCOMPAT( V12R1M504 )或更高版本打包的数据库无法创建哈希组织表,也无法更改现有表以使用哈希组织。 现有的哈希有序表仍然受支持,但未来可能不再受支持。
更改表空间的日志记录属性
如果表空间的日志记录属性(由LOGGED或NOT LOGGED参数指定)经常更改,则可能需要增加 SYSIBM.SYSCOPY 的大小。

如果表空间已在同一恢复单元中更新,则无法更改表空间的日志记录属性。

应完整复制表格空间:
  • 在将表格空间更改为“未登录”之前
  • 将表格空间改为已登录后

如果表空间在图像复制后发生了数据更改(表空间处于信息性COPY-pending状态),并且表空间从NOT LOGGED更改为LOGGED,则该表空间将被标记为COPY-pending,并且必须对表空间进行完整的图像复制。

当关联的基础表空间的日志记录属性从“已记录”更改为“未记录”时,具有“已记录”日志记录属性的XML表空间也会随之更改为“未记录”。 当发生这种情况时,XML 表空间的日志记录属性被称为链接到基表空间的日志记录属性。 当基础表空间的日志记录属性被修改回“已记录”时,关联的XML表空间的所有日志记录属性也会被修改回“已记录”,并且所有这些关联都会被解除。

当关联的基础表空间的记录属性从记录更改为不记录时,具有记录属性的LOB表空间记录属性将更改为不记录。 当发生这种情况时,LOB 表空间的日志记录属性被称为与基表空间的日志记录属性相链接。 当基础表空间的日志记录属性被修改回“已记录”时,关联的LOB表空间的所有日志记录属性也会被修改回“已记录”,并且所有这些关联都会被解除。

您可以通过将LOB表空间的日志记录属性更改为“不记录”,来解除这些日志记录属性之间的关联,即使它已经隐式地被赋予了此日志记录属性。 在进行了这样的更改后,当基础表的日志记录属性被更改回LOGGED时,LOB表空间的日志记录属性不会受到影响。 如果关联的基础表空间的日志记录属性从“已记录”更改为“未记录”,则具有“未记录”日志记录属性的LOB表空间不会发生任何改变。 当以这种方式更改时,LOB表空间和基本表空间的日志记录属性将不再关联。 如果将基本表空间更改回“已记录”,则未链接到基本表空间记录属性的任何LOB表空间的记录属性将保持不变。

更改 Db2 目录表的表空间
有关更改目录表选项的详细信息,请参阅目录上允许的SQL语句
包裹失效:
根据指定的条款和关键字以及其他因素,此语句可能会使所有依赖于目标对象的程序包失效,有时还会通过级联效应影响其他相关对象。 更多信息,请参阅 “导致套餐失效的变更 ”。
待定的数据定义变更
下表列出了导致ALTER TABLESPACE语句作为待处理的定义变更处理的条款和特定条件。 ALTER TABLESPACE语句发出时,定义或数据不会反映这些更改。 相反,整个表空间被置于待重组(AREOR)状态。 随后对整个表空间进行重组,将待定的定义更改应用到表空间的定义和数据中。 表格空间的定义不能处于不完整状态。
条款或选项 如果……,则使用待定义的更改。
BUFFERPOOL 表空间的数据集已经创建,且满足以下任意条件:
  • 对于表空间或基础表空间中的任何对象,已经存在定义更改。
  • 指定的缓冲池的页面大小与当前用于表空间的缓冲池不同。
DSSIZE 表空间的数据集已经创建,且满足以下任意条件:
  • 更改开始表空间或表空间中的任何对象已存在待定定义更改。更改结束
  • 更改开始表空间使用相对页码,并且在表空间级别指定的 DSSIZE 值小于表空间中一个或多个分区当前使用的值。更改结束
  • 更改开始表空间使用绝对页码,且指定的 DSSIZE 值与表空间当前使用的值不同。更改结束
最大分区 如果表空间的数据集已经创建,且表空间不是PBG表空间。
更改开始MEMBER CLUSTER更改结束 更改开始如果表空间的数据集已创建,且以下任何条件为真:
  • 表空间或表空间中的任何对象已经存在定义更改。
  • 成员集群属性被更改为不同的值。
更改结束
更改开始Fl 508 移动台更改结束 更改开始更改后的表空间的数据集已经创建。更改结束
更改开始页码更改结束 更改开始如果已经创建了表空间的数据集,且以下条件之一为真,则对 PAGENUM 属性的更改是对表空间定义的待定更改:
  • 表空间或任何相关索引的现有定义变更。
  • 指定的 PAGENUM 属性与当前用于表空间的值不同。
更改结束
尺寸 表空间的数据集已经创建,且满足以下任意条件:
  • 对于表空间或表空间中任何对象的定义,已有待定义的更改。
  • 通用表空间指定的 SEGSIZE 值与现有值不同。
  • 表空间从分区(非UTS)表空间转换为按范围分区的表空间。

当为按增长分区(PBG)表空间的 BUFFERPOOL、DSSIZE、MAXPARTITIONS 或 SEGSIZE 属性指定待定义更改时,分区数量将根据应用待定义更改时现有数据的数量确定,并且可能会发生分区增长。 如果存在LOB列,则无论SQLRULES ( DB2 )或SQLRULES (STD)是否生效,也无论表空间是显式创建还是隐式创建,都会为新创建的分区隐式创建额外的LOB表空间和辅助对象。 新的LOB对象继承了现有LOB对象的缓冲池属性和授权。

更多信息,请参阅待定的数据定义变更

待定数据定义变更的限制
以下限制适用于ALTER TABLESPACE、ALTER TABLE和ALTER INDEX语句,这些语句会导致数据定义变更处于待处理状态:
  • 导致待定更改的选项不能与立即生效的选项一起指定。
  • 无法为 Db2 目录、其他系统对象或工作文件数据库中的对象指定会导致未完成更改的选项。
  • 不能为目录表空间指定ALTER TABLESPACE语句中的DROP PENDING CHANGES子句。
  • 如果表格空间或其中包含的任何表格处于不完整状态,则无法指定会导致待处理更改的选项。
  • 对于ALTER INDEX,如果定义索引的表空间或表的定义不完整,则无法指定导致待处理更改的选项。

此外,许多变更操作会受到限制,因为表空间、表空间包含的表或表上的索引存在待定的数据定义变更。 更多信息,请参阅 “待定数据定义变更的限制 ”。

分区数量上限和表格空间大小
更改开始对于使用相对页码创建的按分区范围划分的表空间,分区的最大数量为 4096 个。 更改结束 对于具有绝对页码的逐分区范围表空间或逐分区增长表空间,下表显示了最大分区数和表空间总大小如何取决于缓冲池页码和 DSSIZE 值,以及 5 字节扩展寻址(EA)存储 1
4 KB页面大小
表 1. 最大分区数和表空间大小(按DSSIZE划分),页面大小为4 KB
DSSIZE MAXIMUM NUMBER OF PARTITIONS 桌子总面积
1G 4096 4 TB
2G 4096 8 TB
4G 4096 16 TB
8G 2048 16 TB
16G 1024 16 TB
32G 512 16 TB
64G 256 16 TB
128G 128 16 TB
256G 64 16 TB
8 KB页面大小
表 2. 最大分区数和表空间大小(以DSSIZE为单位),页面大小为8 KB
DSSIZE MAXIMUM NUMBER OF PARTITIONS 桌子总面积
1G 4096 4TB
2G 4096 8TB
4G 4096 16TB
8G 4096 32TB
16G 2048 32TB
32G 1024 32TB
64G 512 32TB
128G 256 32TB
256G 128 32TB
16 KB页面大小
表 3. 最大分区数和表空间大小(以DSSIZE为单位),页面大小为16 KB
DSSIZE MAXIMUM NUMBER OF PARTITIONS 桌子总面积
1G 4096 4 TB
2G 4096 8 TB
4G 4096 16 TB
8G 4096 32 TB
16G 4096 64 TB
32G 2048 64 TB
64G 1024 64 TB
128G 512 64 TB
256G 256 64 TB
32 KB页面大小
表 4. 最大分区数和表空间大小(以DSSIZE为单位),页面大小为32 KB
DSSIZE MAXIMUM NUMBER OF PARTITIONS 桌子总面积
1G 4096 4 TB
2G 4096 8 TB
4G 4096 16 TB
8G 4096 32 TB
16G 4096 64 TB
32G 4096 128 TB
64G 2048 128 TB
128G 1024 128 TB
256G 512 128 TB
注:
  1. 对于5字节非EA存储,4 KB页面大小的最大值为DSSIZE 4 G、4096个分区和16 TB的总表空间。
其他语法和同义词
为了与 Db2 的早期版本兼容,支持以下关键词:
  • 您可以指定LOCKPART子句,但它不起作用。 Db2 将所有分区表空间视为 LOCKPART YES。 LOCKPART YES 指定使用选择性分区锁定。 当选择性分区锁定所需的所有条件都满足时, Db2 才会锁定被访问的分区。 当选择性分区锁定条件不满足时, Db2 将锁定桌面空间的每个分区。
  • 在更改分区表空间的分区时,PARTITION关键字之前的ALTER关键字是可选的,如果省略了ALTER关键字,则可以指定PART作为PARTITION的同义词。
  • 您可以将“LOG YES”指定为“LOGGED”的同义词,将“LOG NO”指定为“NOT LOGGED”的同义词。

ALTER TABLESPACE示例

示例 1
更改数据库中的 DSN8S12D 数据库中 DSN8D12A。 BP2 是与表空间关联的缓冲池。 PAGE是锁定级别。
   ALTER TABLESPACE DSN8D12A.DSN8S12D
     BUFFERPOOL BP2
     LOCKSIZE PAGE;
示例 2
更改数据库中的 DSN8S12E 数据库中 DSN8D12A。 桌子空间被隔开。 当当前没有用户访问表空间时,指示表空间的数据集不会被关闭。 此外,更改所有分区,以便 Db2 使用公式确定任何辅助空间分配,并将分区1的PCTFREE值更改为20。
   ALTER TABLESPACE DSN8D12A.DSN8S12E
     CLOSE NO
     SECQTY -1
     ALTER PARTITION 1 PCTFREE 20;
示例 3
以下语句更改了分区增长表空间中的最大分区数:
ALTER TABLESPACE TS01DB.TS01TS
  MAXPARTITIONS 30;