10

当我更改db2中的表时,我必须重新组织它,以便执行下一个查询:

Call Sysproc.admin_cmd ('reorg Table myTable');

我正在寻找适当的解决方案来在更改表时重新组织表,或者在进行各种修改后重新组织所有模式

4

3 回答 3

5

REORG您可以通过查看以下内容来确定表格何时需要SYSIBMADM.ADMINTABINFO

select tabschema, tabname
  from sysibmadm.admintabinfo
 where reorg_pending = 'Y' 

您可能还想查看该NUM_REORG_REC_ALTERS列,因为这可能会向您显示由于各种语句而不需要重组的其他表。ALTER TABLE

于 2013-04-16T19:25:54.210 回答
4

重组操作类似于硬盘中的碎片整理。它释放页面中的空白空间,最终它可以根据索引重新组织数据。根据功能,它创建压缩字典并压缩数据。

如您所见,重组操作是一项管理任务,并不是每次修改数据都需要。数据库可以在没有重组的情况下运行。

为了解决这个问题,DB2 包含了自动备份等自主功能,但这并不能回答您自己的问题。这只会在需要的表上触发重组。

于 2013-04-16T13:55:36.723 回答
0

在 db2 配置中,我们有:

自动重组 (AUTO_REORG) = OFF

我们可以将 auto_reorg 设置为 on

于 2013-04-16T11:31:28.810 回答