db2 reorgchk 命令是最重要的、也是经常被忽略的 DB2 调整命令之一。 db2 reorgchk 命令被忽略是因为它不是一个一次性调整项。由于更新是在 DB2 数据库上执行的,因此关于表的统计信息将不会是最新的。db2 reorgchk 命令更新 DB2 优化器所使用的重要统计信息。建议在大约每 10,000 次更新后重复 db2 reorgchk 命令。
在运行 db2 reorgchk 命令之前,您应该停止 IBM Directory Server 以防止在命令执行的同时发生任何 DB2 查询或更新。虽然这是可选的,但数据库查询和更新可能会非常缓慢并有可能超时。
要运行 db2 reorgchk 命令,请执行以下操作之一。这些示例假设 ldapdb2 为 DB2 实例所有者:
- 在 UNIX 系统上,输入以下命令:
su - ldapdb2 db2 connect to ldapdb2 db2 reorgchk update statistics on table all db2 terminate
- 在 Windows 系统上,输入以下命令:
db2cmd set DB2INSTANCE=ldapdb2 db2 connect to ldapdb2 db2 reorgchk update statistics on table all db2 terminate
在具有三百万个用户的 400 MHz Solaris 系统上执行 db2 reorgchk 命令要耗费约 20 分钟。
请注意,运行 db2 reorgchk 命令所带来的性能益处是即时的。不必在 db2 reorgchk 命令之后重新启动 DB2。
除了提高性能之外,db2 reorgchk 命令还报告关于数据库中所有表和索引的统计信息。db2 reorgchk 命令还报告关于 DB2 表的组织的统计信息。