利用Explain分析SQL--【监控】

Explain 表格式化命令 第 7 页(共9 页)


db2exfmt 工具用于处理插入到 Explain 表中的信息。DB2 使用这些表来记录有关 SQL 不同组成部分的所有信息以及优化信息。当您使用 Visual Explain 工具时,会自动为您创建这些表。如果您最初使用文本工具,那么您首先必须运行一个脚本来创建这些表。在您所连接的 db2 实例主目录下的misc 子目录(比如我的:/home/db2inst1/sqllib/misc/目录下)中执行下列命令。将为您创建所有表和索引。

下面是 Explain 表出错消息:

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 信息填入表

下面是一个示例:

Explain 示例

使用工具

db2exfmt 有许多选项,这些选项允许您选择您希望使用的 Explain 语句。您还可以对显示哪些信息进行控制。最简单的方法是全部使用缺省值,这样就会使该工具返回有关最近解释过的语句的信息:

db2exfmt

下面是样本查询摘要输出:

查询输出 1

下面是样本查询树信息:

查询输出 2

posted @   胡.杰  阅读(421)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端
点击右上角即可分享
微信分享提示