监控 DB2 活动之Visual Explain详细介绍


  Timeron 和 SQL 翻译

  Timeron

  为了分析解释信息,您需要了解的最重要的事情就是 timeron 的概念。Timeron 是 DB2 Optimizer 使用的一种度量单位,用于计量查询完全执行所需的时间和资源数量。timeon 是时间、CPU 占用率、磁盘 I/O 和其他一些因素的综合。由于这些参数的值不断变化,执行一个查询所需的 timeon 数量也是动态的,每次执行都有所不同。

  Timeron 也是一种创造出来的度量单位,因此,没有什么公式可以将执行一个查询所需的 timeron 数转换成秒数。除此之外,timeron 可以帮助您确定一种查询执行途径是否比另一种更快。(若执行一个查询所需的 timeron 数在两次编译之间相差 10 或 20 timeron,不必担心,这可能仅仅是由于 CPU 活动、磁盘活动或数据库使用情况发生了变化。)

  SQL 翻译

  对一个数据库执行任何 SQL 语句之前,必须首先准备 SQL 语句。在此过程中,SQL 语句会简化为代数语句,DB2 Optimizer 随后可对此代数语句进行分析。这条代数语句就是所谓的查询图解模型,在整个优化过程中发挥作用。图 6 展示了在执行 SQL 查询之间,必要的优化及解析步骤。

  图 6. SQL 翻译流程

  

  优化流程的最终输出是一个访问计划。访问计划是 DB2 用以执行 SQL 语句的途径和步骤。这是由所有可用解释工具显示的信息。乍看上去,访问计划似乎非常复杂。但在具备了一定经验之后,您会很快发现它们实际上非常容易阅读和分析。

  激活 Visual Explain

  只要收集到了全面解释和/或解释快照数据,关于数据收集实现和方法的信息就会记录在 EXPLAIN_INSTANCE 解释表中。您可随时通过 Explained Statement History 窗口查看此信息。要激活 Explained Statement History 窗口,可在 Control Center 中高亮显示适当的数据库,并在 Control Center 菜单中选择 Selected > Show Explained Statement History 即可。图 7 展示了在为一条 SQL 语句收集了解释快照数据之后,Explained Statement History 窗口的外观。

  图 7. Explained Statement History 窗口

  

  一旦打开了 Explained Statement History 窗口,就可以使用 Visual Explain 来分析为任何记录收集的解释快照数据,这些数据的显示方法是,高亮显示一条记录,并在 Explained Statement History 窗口的主菜单中选择 Statement > Show Access Plan。图 8 展示了以这种方法为以下查询创建的 Access Plan 窗口(此查询可在随 DB2 提供的 SAMPLE 数据库上执行):

  SELECT * FROM EMPLOYEE, DEPARTMENT WHERE WORKDEPT=DEPTNO

  图 8. Access Plan Graph 窗口

  

  另一方面,还可为新查询收集解释快照数据,相应的访问计划可通过在 Explained Statement History 窗口的主菜单中选择 Statement > Explain Query... 显示出来。在选中这些菜单项时,Explain Query Statement 窗口将打开,并提示您为查询输入文本。图 9 展示了以一个简单的查询填充后的 Explain Query Statement 窗口。

  图 9. Explain Query Statement 窗口

  

  Access Plan Graph 窗口中展示的访问计划的每个组件都可供单击,单击后即可看到关于该组件的详细信息。例如,若选中图 8 所示的访问计划中的操作符,则 Operator details 窗口中将显示如图 10 所示的详细信息。

  图 10. Operator details 窗口

  

  在分析一个访问计划以定位性能瓶颈时,最好尝试单击所有不同的对象类型,以便充分了解已有的查询信息。


« 
» 
快速导航

Copyright © 2016 phpStudy | 豫ICP备2021030365号-3