saroff Asked: 2016-02-01 06:36:18 +0800 CST2016-02-01 06:36:18 +0800 CST 2016-02-01 06:36:18 +0800 CST DB2 Reorg 推荐的命令 772 是否有一些完整的命令列表会导致 table 变为 reorg-pending? 我用谷歌搜索了一段时间,但找不到完整的列表。我现在的确切问题 - ADD FOREIGN KEY 语句可以导致表成为重组挂起吗? db2 db2-luw 2 个回答 Voted Best Answer mustaccio 2016-02-01T07:53:00+08:002016-02-01T07:53:00+08:00 reorg pending如果您更改表的物理结构(例如添加或删除列或更改列数据类型或可空性),则表处于该模式。 某些操作不会将表放入 中reorg pending,但需要进行重组才能使更改生效,例如更改表COMPRESS属性或 LOB 列的内联长度。 添加或删除外键不会将表放入reorg pending,也不需要重组。但是,将现有外键从 更改not enforced为enforced会将表置于check pending模式中,这会reorg pending阻止应用程序访问该表。 reorg除了 DB2 手册,尤其是ALTER TABLE声明和这篇文章之外,我不知道有什么好的来源可以阅读更多关于的信息: DB2 10.5 for Linux、UNIX 和 Windows:更改表 Jeff Goss 2019-03-15T09:00:27+08:002019-03-15T09:00:27+08:00 是的,可以使您的表进入重组待处理的列更改的完整列表(只读并且只能在其中一个提交时进行表扫描,非常激烈)现在在ALTER TABLE命令中清楚地列出,摘录如下。 以下是 REORG 推荐的 ALTER 语句的完整列表,这些语句会导致版本更改并将表置于 REORG 挂起状态: 删除列 ALTER COLUMN SET NOT NULL ALTER COLUMN DROP NOT NULL ALTER COLUMN SET DATA TYPE,以下情况除外: 增加 VARCHAR 或 VARGRAPHIC 列的长度 当列上不存在索引时,减少 VARCHAR 或 VARGRAPHIC 列的长度而不截断现有数据的尾随空格 尽管每个都可以创建一个新版本,并且在 3 个版本之后您必须重新组织,但在单个 UOW 中您可以修改任意数量的列。这也可以在一个ALTER TABLE命令中包含任意数量的这些。在这些情况下,所有更改的总和将计为 1 个新版本。
reorg pending
如果您更改表的物理结构(例如添加或删除列或更改列数据类型或可空性),则表处于该模式。某些操作不会将表放入 中
reorg pending
,但需要进行重组才能使更改生效,例如更改表COMPRESS
属性或 LOB 列的内联长度。添加或删除外键不会将表放入
reorg pending
,也不需要重组。但是,将现有外键从 更改not enforced
为enforced
会将表置于check pending
模式中,这会reorg pending
阻止应用程序访问该表。reorg
除了 DB2 手册,尤其是ALTER TABLE
声明和这篇文章之外,我不知道有什么好的来源可以阅读更多关于的信息:DB2 10.5 for Linux、UNIX 和 Windows:更改表
是的,可以使您的表进入重组待处理的列更改的完整列表(只读并且只能在其中一个提交时进行表扫描,非常激烈)现在在
ALTER TABLE
命令中清楚地列出,摘录如下。尽管每个都可以创建一个新版本,并且在 3 个版本之后您必须重新组织,但在单个 UOW 中您可以修改任意数量的列。这也可以在一个
ALTER TABLE
命令中包含任意数量的这些。在这些情况下,所有更改的总和将计为 1 个新版本。