在基于临时会话的表上创建索引后运行统计信息
Posted
技术标签:
【中文标题】在基于临时会话的表上创建索引后运行统计信息【英文标题】:Run stats after creating index on a temporary session based table 【发布时间】:2015-04-10 10:15:04 【问题描述】:数据库:- DB2 我已经编写了一个操作数据以获得最终输出的程序。 基于临时会话的表用于相同的目的。 由于这些临时表中的数据量很大,因此会创建索引。
能否请我就创建索引后是否应该运行统计信息获得建议??
我在某处读到运行统计信息是数据库级别而不是会话级别。 调整大型临时表的正确方法是什么?
【问题讨论】:
答案取决于 DB2 版本和平台。 db2 版本为 9.1.2 【参考方案1】:既然您创建了索引,就会假设您已经进行了性能分析并确定需要这些索引。如果是这种情况,谨慎的做法是获取这些索引的最新统计信息,否则它们可能没有那么有用。
您可以在创建索引时生成索引统计信息:CREATE INDEX ... UPDATE STATISTICS
。
如果在您的环境中启用了自动 RUNSTATS,您也可以依赖它,但是,鉴于临时表的瞬态特性,自动维护可能不足以满足您的目的。
【讨论】:
【参考方案2】:我看到你也标记了 Oracle。
在 Oracle 中,您不需要在创建新索引之后收集统计数据。
来自documentation,
Oracle 数据库现在在索引期间自动收集统计信息 创建和重建。
【讨论】:
以上是关于在基于临时会话的表上创建索引后运行统计信息的主要内容,如果未能解决你的问题,请参考以下文章