利用Explain分析SQL--【监控】
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 语句。您还可以对显示哪些信息进行控制。最简单的方法是全部使用缺省值,这样就会使该工具返回有关最近解释过的语句的信息:
下面是样本查询摘要输出:
下面是样本查询树信息:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端