gpt4 book ai didi

sql - IBM DB2 中的 reorg 命令有什么用?

转载 作者:行者123 更新时间:2023-12-01 22:58:07 25 4
gpt4 key购买 nike

ibm db2 db 中的 reorg 命令有什么用? Reorg 内部做什么?如果在表上创建了新索引,是否需要运行 reorg?

最佳答案

REORG 操作执行以下功能:

  • 检查参照完整性(如果适用于目标表),并删除违反参照完整性的行或使任何受影响的索引无效。 (引用完整性是表中的每个外键值作为引用表中的主键值存在的关系属性。

  • 对表(所有类型)的一个或多个索引执行内部重组,以改进该信息的内部存储,从而提高使用索引访问数据时的性能。它可以重建所有索引,选择性重建一个或多个命名索引,或选择性重建一个或多个命名索引的一个或多个段。

  • 填充使用 CREATE INDEX 语句创建的 DEFERRED 索引。 DEFERRED 索引是一个空索引结构,可以在以后填充。

  • 重建预先计算的 View 。例如,如果应用程序中的预计算 View 维护设置为 OFF,则可以使用 REORG 命令仅重建预计算 View ,而无需触及目标表上的索引。或者,您可以使用 REORG 命令重建索引和 View 。

除了重建聚合表数据之外,REORG 命令还会重建聚合表上的索引。

在以下情况下需要进行 REORG 操作:

  • 如果使用数据库还原操作来还原表或索引的各个段,则重建受影响的索引。

  • 每当对数据库的修改影响超过 30% 的数据时,请对任何直接修改的表运行带有 REORG 语句的 TMU。使用 REORG 语句定期重建此类表和索引可确保引用完整性和最佳性能。

  • 重组无效的 STAR 索引。某些操作可能会使 STAR 索引失效。例如,增加表上的 MAXROWS PER SEGMENT 或 MAXSEGMENTS 参数,或者使用 ALTER 语句扩展段,可能会使引用已更改表的表上的 STAR 索引无效。这些操作总是会生成一条警告消息,指出基于已更改表的 STAR 索引可能无效,在这种情况下需要重新组织受影响的 STAR 索引。您可以在发出消息时重新组织受影响的索引,也可以安排在更方便的时间进行 REORG 操作。但是,针对具有无效索引的表的任何非查询(INSERT、UPDATE 或 DELETE)操作都会导致一条错误消息,指示必须重新组织索引。您必须先执行 REORG 操作,然后才能访问表以进行 INSERT、UPDATE、DELETE 或 LOAD 操作。

在以下情况下不需要 REORG:

  • 如果除了完整加载数据之外未对数据库进行任何更改。

  • 如果表和索引被同样地分段,并且新索引数据被加载到与新表段对应的新索引段中。

关于sql - IBM DB2 中的 reorg 命令有什么用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3417563/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com