在哪些情况下,建议使用RUNSTATS命令进行统计信息收集?
- 当向表装入数据并创建了新的索引
- 当用REORG命令重组表和索引时
- 当存在大量影响表及其索引的更新、删除和插入操作时(大量=10%-20%)
- 在绑定对性能要求很好的应用程序之前
- 在预存取(prefetch size)大小发生变化时
- 当在表中创建新的索引时
- 当想要比较当前和先前统计信息时
- 使用RUNSTATS命令来收集关于XML列的统计信息

关于最后一条:在成功执行RUNSTATS命令之后,静态SQL查询并不会使用最新的数据库统计信息,这是因为静态SQL的访问策略在之前执行BIND时就已确定,而当时使用的统计信息有可能与现在的并不一致。这时候就需要重新绑定使用静态SQL的应用程序,这样查询优化器就可以根据数据库最新统计信息来选择获取数据的最佳访问策略。但是,对于使用动态SQL的应用程序而言,则没必要重新进行重新绑定,因为动态SQL语句的访问策略是根据统计信息在运行时动态生成的。
附:
按字段收集TIPS
1. To collect statistics on specific columns, column groups, or both, use the ON COLUMNS. A column group is a parenthesized comma-separated list of columns for which you want to collect combined statistics.
2. If you specify the WITH DISTRIBUTION parameter followed by the ON COLUMNS parameter with column groups, distribution statistics are not collected for the column groups.
例:
RUNSTATS ON TABLE employee ON ALL COLUMNS AND COLUMNS ((JOB, WORKDEPT, SEX)) WITH DISTRIBUTION
RUNSTATS ON TABLE employee WITH DISTRIBUTION ON COLUMNS (empid, empname)




