DMLOG是分析DM数据库的SQL日志文件的工具,可以统计日志中最长执行时间和执行最高频次的 SQL 语句,以图表的形式展示出来,方便性能分析。
select para_value from v$dm_ini where para_name=‘SVR_LOG’;
如果没有则需要修改sqllog.ini文件,主要把路径修改下即可:
FILE_PATH = /dmdata/sqllog
SP_REFRESH_SVR_LOG_CONFIG();
SP_SET_PARA_VALUE(1,‘SVR_LOG’,1);
稍等一会儿就可以在/dmdata/sqllog中看到有对应的sql日志文件生成
找到DMLOG的zip压缩包,然后修改它的配置文件dmlog.properties,主要是连接数据库的用户密码以及sqllog目录:
ip=127.0.0.1
port=5236
username=SYSDBA
password=Sysdba@123
sqlpath=/dmdata/sqllog
执行命令进行分析:
[dmdba@192-168-56-102 DMLOG8.18]$ java -jar Dmlog_DM_8.18.jar
Linux
创建分析结果目录RESULT_2025_09_15_19_48_47成功!
----------------分析文件:dmsql_DMSERVER_20250915_100022.log----------------
----------------分析文件:dmsql_DMSERVER_20250915_143002.log----------------
----------------分析文件:dmsql_DMSERVER_20250915_145610.log----------------
dmsql_DMSERVER_20250915_145610.log文件已处理:5000行
dmsql_DMSERVER_20250915_145610.log文件已处理:10000行
dmsql_DMSERVER_20250915_145610.log文件已处理:10165行
dmsql_DMSERVER_20250915_145610.log文件已处理:12317行
dmsql_DMSERVER_20250915_145610.log文件已处理:15000行
dmsql_DMSERVER_20250915_145610.log文件已处理:20000行
dmsql_DMSERVER_20250915_145610.log文件已处理:25000行
dmsql_DMSERVER_20250915_145610.log文件已处理:30000行
..........
----------------更新ROWCOUNT-------------------------
----------------创建索引-------------------------
----------------创建索引成功---------------------
----------------开始分析-------------------------
----------------生成时间维度统计结果-------------
----------------生成次数维度统计结果-------------
----------------生成echart统计图-----------------
----------------生成QPS统计图--------------------
----------------生成echart负载图-----------------
----------------生成jfree散点图------------------
----------------TABLENAME:LOG_COMMIT-------------
----------------分析完毕,请查看结果-------------
程序运行时间: 376 秒
可以在当前目录下生成一个RESULT_前缀的目录,后面跟着时间戳,打开这个目录可以看到echarts_qps.html,echarts_scatter_loading10.html,echarts_scatter_Statistics.html这几个html文件,它们是图表展示qps、top和其他统计信息的表格。
more_than_0_ms_log_result.xls、more_than_0_times_log_result.xls是记录分析的具体SQL信息,可以用来进行更针对性的SQL分析。
这个文件是展示不同类型的SQL语句执行频率的折线图表,例如select语句、update语句、insert语句等:
它的精度可以达到秒级,右边的柱状调节按钮可以调节展示的最大值,高于此值的不显示在折线图中,底部的柱状按钮可以调节时间范围,仅显示指定时间区间内的点,上部的多个小圆圈控制不同类型的SQL的折线图。
此文件是展示select类型语句在每一秒的时间线上的耗时分布,鼠标放在对应的点上可以看到对应的具体执行语句:
也可以点击右边的柱状按钮来调节展示的最大值,底部的柱状按钮调整时间区间
此文件是展示select类型语句的平均耗时和执行次数之间的耗时:
横轴为SQL语句的执行次数,纵轴为执行耗时
这两张excel表展示的是所有SQL的执行耗时、执行次数、执行计划等信息,两张表的内容是一样的,但是排序列不同,more_than_0_ms_log_result.xls是按照最大执行时间降序排序,more_than_0_times_log_result.xls是按照执行次数降序排序。
DMLOG工具与数据库的sqllog功能结合达到了可以对数据库的性能分析的目的,对于数据库输出的详细sqllog日志非常大时,很难用人工肉眼一点点分析,此时用DMLOG工具可以从DBA视角来对业务系统执行的SQL进行快速分析定位高频耗时的SQL语句,针对耗时占比高的语句进行有目的得重点优化,能够达到更好的优化效果。
此工具还有一些待改进的地方:
文章
阅读量
获赞