服务器 频道

当DB2优化器非正常工作时该怎么办?

  什么时候好的决策比快速的决策更好

  以前当我在寻找新工作时,我曾无意中看到两个空缺职位,它们是同一家公司提供的,而且是针对同一个项目的。对于该项目,他们需要一个项目经理和一个技术负责人。在众多要求中,他们列出了:

    ◆ 对于项目经理:“能够做出快速的决策。”

    ◆对于技术负责人:“能够做出好的决策。”

    ◆确有其事!

  对于低的优化级别,优化器必须动作迅速。无论我们打算提供什么样的最新和详细的统计信息,优化器也许没有足够的时间对它进行分析。前面几章中的所有示例都是在缺省优化级别 5 下运行的。如果我们在低优化级别 1 下重新考虑前面的示例,添加引用完整性约束将不会产生更好的计划。

  如果您想要好的决策,而不是快速的决策,请相应地设置优化级别。

  有关优化级别的更多信息,请参考 DB2 Administration Guide 中关于性能和实现(Implementation)的章节。

  结束语

  DB2 优化器是非常智能化的。但是,根据不正确的信息,它也许会得出优化程度较低的结论。我们已经知道了如何:

  检测不正确或不完整的统计信息。

  向优化器提供正确且完整的统计信息。

  在测试环境中更新 SYSSTAT 模式的视图,并执行“假定方案”实验。

  性能调优从来就不容易。在查询优化中没有一成不变的规则。只要有可能,就应检查优化级别,使统计信息保持最新,并确保业务规则作为约束实现。我希望本文在数据库开发人员处理许多问题时有所帮助。

  祝您好运!

  感谢

  作者衷心感谢 Mike Pittinger 的帮助。

  关于作者

  Alexander Kuznetsov 在软件设计、开发和数据库管理方面已有 15 年的经验。目前,他正在设计 DB2 UDB EEE 中多 TB 级群集数据库。Alexander 是 IBM 认证高级技术专家(DB2 群集)(IBM Certified Advanced Technical Expert (DB2 Cluster))和 IBM 认证解决方案专家(数据库管理和应用程序开发)(IBM Certified Solutions Expert (Database Administration and Application Development))。可以通过 alkuzo@mindspring.com 和 comp.databases.ibm-db2 新闻组与他联系。

0
相关文章