每个DB2 SQL开发人员都应当知道对一个查询执行DB2 Explain后如何分析得到的Explain信息。这是一个非常有用的工具,可以指出优化工具为一个特定查询选择的访问路径。市场上有很多不同的Explain工具,每个DB2工作室都有能力执行Explain。所以要熟悉你的工作室使用什么工具执行Explain。DB2 Explain会回答以下基本优化问题(当然还不只这些):
·涉及表上使用的索引吗?或者是否选择了一个表空间扫描?
·具体选择了哪些索引?
·采用什么顺序处理表?
·涉及排序吗?
·为什么会有排序?
·选择了哪一个联接方法?
·是否对视图或嵌套表表达式(nested table expression)或者公共表表达式(common table expression)进行物化?
·能否只访问索引文件来满足查询,或者是否DB2还必须访问表的数据文件?
·每个谓词的筛选率是什么?
·有没有Stage 2谓词?
IBM提供了一些很棒的工具,可以对外提供一个查询的DB2优化信息。开始是在V8中提供了Visual Explain工具,后来在V9中提供了Optimization Service Center和IBM Data Studio工具。这些工具采用一种可视化Explain的形式对外提供优化Explain信息。我推荐IBM的Data Studio工具,因为V10中已经废弃了Optimization Service Center。与以往执行常规Explain相比,使用Visual Explain会得到更多的优化信息。它还提供了一个统计建议工具,如果它认为可能有帮助,还会推荐一些额外的查询统计信息。