全面解析IBM DB2 9中的查询优化新特性
2008-08-30 16:25:53 来源:WEB开发网很多人都曾在应用程序中碰到这样的情况:大多数查询工作负载都经过了适当的调优,并取得了较好的性能,但是,随着用户期望的增长,加上系统的复杂性和多样性,仍然有少数 SQL 语句无法通过调优取得预期的性能。虽然人们已经尽了最大的努力力图通过改变数据库(例如使用索引建议器或者其他方法来改进索引、更新统计信息、改善数据群集及更改参数)来调优 SQL 语句,但是问题仍然存在。有时候,我们希望更直接地影响优化器,同时尽量避免更改应用程序。
这时候可以考虑使用优化指南。然而需要注意的是,先进的优化器在生成一个特定的访问计划时,必然有其原因,所以在应用指南之前,务必理解是什么原因导致查询的性能低下。优化指南使用起来并不难,但更具有挑战性的任务是根据给定的数据库环境判断 SQL 语句的问题出在哪里,并选择适当的指南加以应用。
优化概要文件的工作原理
首先选择一组您想要影响其访问计划的查询。然后,将这些查询和一些适当的指南放到一个 XML 优化概要文件中。为了通过验证,这个优化概要文件必须遵从优化指南 XML 模式,并由一些区段组成,如清单 1 所示。
清单1.XML 优化概要文件
XML 优化概要文件以 OPTPROFILE 区段开始,该区段表明版本属性。这个全局区段将规则全局地应用到所有 SQL 语句上。例如,可以指定使用哪个 REOPT 选项,使用哪个 MQT 表,或者使用什么样的查询优化。statement profile 区段则表明将哪些特定的规则应用于 STMTKEY 元素中的 SQL 语句上。
如果有问题的 SQL 查询不容易访问到,那么借助 XML 优化概要文件可以带来很大的方便。例如,SQL 查询可能处在一个应用程序中,而这个应用程序是不能更改的。在这种情况下,可以使用概要文件,在查询文本成功匹配之后,通过触发与查询相关联的指南来影响查询行为。该环境中的所有 SQL 语句将尝试从活动的优化概要文件中查找匹配项,而这种匹配是高效率、低开销的。
更多精彩
赞助商链接