Explain 表格式化命令 | 第 7 页(共9 页) |
db2exfmt
工具用于处理插入到 Explain 表中的信息。DB2 使用这些表来记录有关 SQL 不同组成部分的所有信息以及优化信息。当您使用 Visual Explain 工具时,会自动为您创建这些表。如果您最初使用文本工具,那么您首先必须运行一个脚本来创建这些表。在您所连接的 db2 实例主目录下的misc
子目录(比如我的:/home/db2inst1/sqllib/misc/目录下)中执行下列命令。将为您创建所有表和索引。
下面是 Explain 表出错消息:
下面是适当的命令:
db2 connect to databaseName
db2 -tvf EXPLAIN.DDL
db2exfmt
工具的不同之处在于,它使用已经捕获的信息,然后用一种易于读取的格式来表示它。该工作完成后,填充 Explain 表。
捕获 Explain 信息
捕获 Explain 信息的最简单方法是将 SQL 存储在文本文件中,然后可以从 DB2 命令行处理器(CLP)(在 Windows 中)或从命令行(在 UNIX 或 Linux 中)运行它。DB2 有一个变量 CURRENT EXPLAIN MODE,它确定是否捕获 Explain 信息。可以对该变量进行设置,使得每当执行查询时,就让 DB2 填充 Explain 表。下面是执行这一工作的适当命令:
db2 SET CURRENT EXPLAIN MODE [no | yes | explain]
下面是 CURRENT EXPLAIN MODE 可能使用的值:
NO:
该值是缺省值;查询正常执行YES:
查询正常执行,同时捕获 Explain 信息EXPLAIN:
不执行查询,但是将 Explain 信息填入表
下面是一个示例:
使用工具
db2exfmt
有许多选项,这些选项允许您选择您希望使用的 Explain 语句。您还可以对显示哪些信息进行控制。最简单的方法是全部使用缺省值,这样就会使该工具返回有关最近解释过的语句的信息:
下面是样本查询摘要输出:
下面是样本查询树信息: