有效使用 Optim Query Tuner 工具进行 SQL 查询语句的优化
2009-12-07 00:00:00 来源:WEB开发网
图 3. 查询格式重组和注解分析
查看原图(大图)
要找到问题的本质,即要找到查询在数据库中执行过程中的瓶颈,我们首先需要借助图形化工具展示其数据库访问细节,Access Path Graph(简称 APG)工具首当其冲。下图 4 展示了此查询在 DB2 数据库中的访问路径。APG 可以使用户直观地理解 SQL 语句的执行方案,有助于发现导致低性能的可疑 mini plan。相比执行工具 db2exfmt 产生的格式化文本的访问计划,它展现的信息更丰富,更明晰。
图 4. 初始执行计划图
查看原图(大图)
从图 4 的 APG 结果可以看出,此查询中对表 T1 和表 T2 的访问方式都是索引扫描,但都为 screening,即是非 matching 的。matching 匹配是指如果对输出的排序需求可以与索引列相匹配,那么按列顺序扫描索引将允许按正确顺序检索行而不需要排序。在应用索引扫描时,我们希望其尽可能是 matching 的,检索的效率可以大大提高。
此外,由于出现了“HIGH”等级的 Statistics Advisor,表明此时采用的统计信息都为缺省值,DB2 优化器已不能较为正确地估计出最好的执行计划,需要重新由 OQT 调用 RUNSTATS 存储过程来更新 DB2 catalog 表中的统计信息。但同时,执行 Statistics Advisor 给出的 Recommendation 建议需要视具体应用而定,因为重新收集 Statistics 统计信息也需要耗费较大的代价,特别是在 z/OS 平台上。因 DB2 优化器使用目录统计信息来确定最佳的访问路径,而要更新这些目录统计信息所采用的主要方法就是运行 RUNTSATS 实用程序,它会重新收集数据库中表和索引的统计信息,以获取与实际情况较为接近的数据环境。
更多精彩
赞助商链接