达梦慢sql监控及分析
一 sqllog.ini 配置过滤慢sql
该文件在dm.ini 同级目录下面
sqllog.ini具体参数可参考DM系统管理员手册,参考示例如下:监控执行时间超过1.5s的sql
BUF_TOTAL_SIZE = 10240 BUF_SIZE = 1024 BUF_KEEP_CNT = 6 [SLOG_ALL] FILE_PATH = /dmdata/log #日志存放路径 PART_STOR = 1 SWITCH_MODE = 2 SWITCH_LIMIT = 512 #文件大小(M) ASYNC_FLUSH = 1 FILE_NUM = 5 #文件个数 ITEMS = 0 SQL_TRACE_MASK = 2:3:25:28 MIN_EXEC_TIME = 1500 #最短执行时间(ms) USER_MODE = 0 USERS = |
当且仅当 INI 参数 SVR_LOG=1 时使用。登陆数据库执行下面脚本开启监控,无需重启即可生效,
SP_SET_PARA_VALUE(1,'SVR_LOG',0);
SP_SET_PARA_VALUE(1,'SVR_LOG',1);
生效之后在对应log文件可以看到dmsql_开头的日志文件
二 使用DMLOG工具对慢sql日志进行分析
工具下载地址
链接:https://pan.baidu.com/s/12QoKNSOufGhp6K5Qjg-FxA 提取码:1234
DMLOG运行环境需预先安装 Java 环境,支持在 Liunx 和 Windows 系统运行,
下面介绍在linux系统进行安装和配置
检查java环境
解压工具包并配置工具参数
unzip DMLOG8.3.zip
vi DMLOG8.3/dmlog.properties
一般修改如下即可,本工具只能在测试环境进行分析,不要直连生产环境进行分析
执行 jar 包命令
java -jar Dmlog_DM_8.3.jar
生成的 RESULT_$DATE 结果文件夹下有根据配置的执行时间和执行次数上限值命名的 excel 文件(xls),将文件下载下面进行分析里面sql
excel 打开如下:
如果需要仔细分析某个模块,可以自定义表名
select
SUBSTRING(sess,INStr(sess,'thrd')+5,6) thrd,
a.SQLSTR_SUB,
min(a.EXETIME),max(a.exetime),
min(STARTTIME),MAX(STARTTIME),
COUNT(*) from "SYSDBA"."log_commit_1018" a
WHERE STARTTIME BETWEEN '2023-12-14 17:54:04' AND '2023-12-14 18:01:21'
--and a.SQLSTR_SUB like 'select %'
GROUP BY a.SQLSTR_SUB
,SUBSTRING(sess,INStr(sess,'thrd')+5,6)