监控 DB2 活动之使用解释工具分析SQL(3)_SQL SERVER数据库_黑客防线网安服务器维护基地--Powered by WWW.RONGSEN.COM.CN

监控 DB2 活动之使用解释工具分析SQL(3)

作者:黑客防线网安SQL维护基地 来源:黑客防线网安SQL维护基地 浏览次数:0

本篇关键词:SQL数据库
黑客防线网安网讯:  EXPLAIN 和 EXPLSNAP 预编译/绑定选项  至此,您已经看到了为动态 SQL 语句收集全面解释信息和解释快照数据的一些方法。但在很多时候,数据库应用程序由静态 SQL 语句构成,这些语句同...

  EXPLAIN 和 EXPLSNAP 预编译/绑定选项

  至此您已经看到了为动态 SQL 语句收集全面解释信息和解释快照数据的一些方法但在很多时候数据库应用程序由静态 SQL 语句构成,这些语句同样需要分析那么如何使用解释工具来分析在嵌入式 SQL 应用程序中编写的静态 SQL 语句呢?要为在嵌入式 SQL 应用程序中编写的静态和/或动态 SQL 语句收集全面解释信息和/或解释快照数据,可以依靠 EXPLAIN 和 EXPLSNAP 预编译/绑定选项。

  如您所料,EXPLAIN 预编译/绑定选项用于控制是否为在嵌入式 SQL 应用程序中编写的静态和/或动态 SQL 语句收集全面解释数据。类似地,EXPLSNAP 预编译/绑定选项用于控制是否为在嵌入式 SQL 应用程序中编写的静态和/或动态 SQL 语句收集解释快照数据。可在用于预编译包含嵌入式 SQL 语句的源代码文件的 PRECOMPILE 命令中指定这两个选项或其中之一。若使用了延迟绑定,那么可以在将应用程序的绑定文件绑定到数据库的 BIND 命令中提供这些选项。

  可为 EXPLAIN 选项和 EXPLSNAP 选项指派的值包括 NO、YES、ALL 或 REOPT。如果两个选项均被指派以 NO 值(例如,EXPLAIN NO EXPLSNAP NO),解释工具将被禁用,不捕获任何解释数据。另一方面,若任一选项被指派以 YES 值,解释工具将被激活,为应用程序中发现的每一条静态 SQL 语句收集全面解释信息或解释快照数据(若两个选项均按此设置,则同时收集这两种信息)。若任一选项被指派以 ALL 值,解释工具将被激活,并且为找到每一条静态 SQL 语句和每一条动态 SQL 语句收集全面解释信息或解释快照数据(若两个选项均按此设置,则同时收集这两种信息),即便是 CURRENT EXPLAIN MODE 和/或 CURRENT EXPLAIN SNAPSHOT 特殊寄存器已设置为 NO。

  若 EXPLAIN 或 EXPLSNAP 选项被指派以 REOPT 值,则各可再优化的递增绑定 SQL 语句的全面解释信息或解释快照数据(若两个选项均按此设置,则同时收集这两种信息)将在运行时放入解释表,即便是 CURRENT EXPLAIN MODE 和/或 CURRENT EXPLAIN SNAPSHOT 特殊寄存器已设置为 NO。

  评估解释数据

  至此为止,您一直将精力集中在收集全面解释数据和解释快照数据的不同方法上。但收集完数据后,如何查看这些数据?为了回答这个问题,您需要先看看专门设计用于以一种有意义的格式呈现解释信息的解释工具。其中包括:

  db2expln
  db2exfmt
  Visual Explain
  db2expln
  之前您已经了解到,在包含嵌入式 SQL 语句的源代码文件绑定到数据库时(无论是作为预编译流程的一部分还是在延迟绑定过程中),DB2 Optimizer 将分析遇到的每一条静态 SQL 语句,并生成一个相应的访问计划,此访问计划随后以包的形式存储在数据库中。给定数据库名称、包名称、包创建者 ID、部分号(若指定了部分号 0,则处理包的所有部分),db2expln 工具即可为存储在数据库系统目录中的任何包解释并说明其访问计划。由于 db2expln 工具直接处理包而非全面解释数据或解释快照数据,因而通常用来获取那些已选定用于未捕获其解释数据的包的访问计划的相关信息。但由于 db2expln 工具仅可访问已存储在包中的信息,因而只能说明所选的最终访问计划的实现,不能提供特定 SQL 语句优化方式的信息。

  若使用额外的输入参数,db2expln 工具还可用于解释动态 SQL 语句(不包含参数标记的动态 SQL 语句)。

  db2exfmt

  与 db2expln 工具不同,db2exfmt 工具设计用于直接处理已收集并存储在解释表中的全面解释数据或解释快照数据。给定数据库名和其他限定信息,db2exfmt 工具将在解释表中查询信息、格式化结果,并生成一份基于文本的报告,此报告可直接显示在终端上或写入 ASCII 文件。

  Visual Explain

  Visual Explain 是一种 GUI 工具,它为数据库管理员和应用程序开发人员提供了查看为特定 SQL 语句选择的访问计划的图形化表示的能力。Visual Explain 允许您完成以下任务:

  查看用于优化 SQL 语句的数据库统计数据。
  确定是否使用索引来访问表数据。(若未使用索引,Visual Explain 可帮助您确定哪些列可受益于索引。)
  允许您进行 “前” “后” 对比,从而查看性能调优的效果。
  获得访问计划执行的各操作的详细信息,包括各操作的预计成本。
  但 Visual Explain 只能用于查看解释快照数据,要查看已收集并写入了解释表的全面解释数据,则必须使用 db2exfmt 工具。

  如您所见,可用于显示全面解释数据和解释快照的不同工具有着很大的差异,无论是在复杂性方面还是在功能方面。表 5 总结了几种可用工具,并强调了各工具的特征。要使解释工具发挥出最好的效果,您应在选择工具时考虑您的环境和需求。

表 5. 可用解释工具的比较
所需特征 Visual Explain db2exfmt db2expln
用户界面 图形化 基于文本 基于文本
“快速但粗略的” 静态 SQL 分析 否 否 是
静态 SQL 支持 是 是 是
动态 SQL 支持 是 是 是
CLI 应用程序支持 是 是 否
详细的 DB2 Optimizer 信息可用 是 是 否
适于分析多条 SQL 语句 否 是 是

 

    黑客防线网安服务器维护方案本篇连接:http://www.rongsen.com.cn/show-10657-1.html
网站维护教程更新时间:2012-03-21 03:07:51  【打印此页】  【关闭
我要申请本站N点 | 黑客防线官网 |  
专业服务器维护及网站维护手工安全搭建环境,网站安全加固服务。黑客防线网安服务器维护基地招商进行中!QQ:29769479

footer  footer  footer  footer