一、引言:

分析SQL是DBA或者数据库服务人员很重要的工作。达梦数据库通过开启SVR_LOG捕捉数据库中运行的所有SQL,并生成SQL日志文件。DMLOG工具是一款简单易用的达梦数据库SQL日志分析工具,旨在帮助运维人员统计日志中最长执行时间和执行最高频次的SQL语句,直观的反应SQL执行情况,对于SQL的优化工作提供了极大的便利。

二、使用范围:

本工具适用于各种版本的DM7数据库和DM8数据库。

三、工具描述:

DMLOG用于对达梦SQL日志进行统计分析,便于SQL优化人员进行查看捕获关键信息,不提供SQL优化建议。DMLOG用java语言编写,不受操作系统平台限制,大小不超过10M,在安装好Java环境后,可在各平台运行。

四、环境准备与工具部署

4.1 Java环境检查

DMLOG工具基于Java开发,运行前需确保系统已安装Java 1.8或以上版本。可通过以下命令检查Java环境:

java -version

4.2 工具获取与解压

DMLOG工具可通过达梦官方渠道获取,下载后解压即可使用:

unzip DMLOG8.18.zip
cd DMLOG8.18

解压后的目录包含以下关键文件:

  • Dmlog_DM_8.18.jar:主程序JAR包
  • dmlog.properties:配置文件
  • echarts.js:可视化图表依赖库

五、配置与使用详解

5.1 配置文件修改

使用前需编辑dmlog.properties配置文件,主要参数说明:

# 分析非MPP产生的日志为0,MPP产生的日志为1
ismpp=0

# 数据库连接信息
ip=127.0.0.1
port=5236
username=SYSDBA
password=Dameng123

# 分析模式:根据已存在的数据生成结果为1,根据LOG日志新生成数据为0
use_result=0

# SQL日志文件夹绝对路径(Windows使用双反斜杠)
sqlpath=/dm8/log/

# 分析多少毫秒以上的SQL语句
time=0

# 是否生成excel统计结果
if_excel=1

# 日志表名
tab_name=log_commit

# 分析时间范围(需同时设置)
start_time=2025-09-02 2:00:00
end_time=2025-09-05 12:00:00

注意:

1、dmlog.properties配置文件中log路径sqlpath参数,注意windows下,使用”\\”代替”\”,路径中有中文会报错,liunx下填写正常路径即可。

2、start_time和end_time填写格式:年-月-日 时:分:秒 例如:2025-07-20 20:52:06

注意:start_time和end_time需要配套使用,缺一不可;且当该参数使用时,请勿修改sql日志文件名。

5.2 工具执行

配置完成后,执行以下命令运行分析工具:

java -jar Dmlog_DM_8.18.jar
分析文件:dmsql_YXJKPTDB2_PMS_YXJCJK_20250902_091003.log
文件已处理:5000行
文件已处理:10000行
...

生成的结果目录下有根据配置的执行时间和执行次数上限值命名的excel文件(xls),报错的SQL和长度超过30000的SQL会另外生成txt文件(txt),echart散点图,QPS折线图及90%平均次数和平均耗时的SQL统计图(html):

总结:

1、需要有jdk环境,能够运行该jar工具包

2、库的页大小为32(小于32会出问题报错)

3、该工具只能分析sp_set_para_value(1,‘svr_log’,1)打开的dmsql_DMSERVER日志

4、选择的日志路径下只能要分析的日志不能有其他文件,可以有多个日志

5、在sql中DML、DQL操作后,记得commit;

6、分析结束记得关闭sp_set_para_value(1,‘svr_log’,0)

7、分析结果会在运行jar包路径下

8、不要再生产环境中使用本工具,因为本工具的运行会对生产环境的数据库造成压力。

达梦数据库 - 新一代大型通用关系型数据库 | 达梦在线服务平台

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐