1、使用条件
- 运行环境预先安装Java环境;支持liunx和windows系统运行。
说明:推荐使用java1.8版本,linux最小化安装最少要安装打印服务组件,windows下不支持java1.6版本。
- SQL日志格式要求确保每条语句后紧跟sql语句时间,因此需确认日志生成的数据库的sql trace参数,建议使用默认参数;
- 由于程序运行需要在后台数据库建log_commit表,建表前会删除同名表,因此如果有同名表,请先做好备份;
- 选择的日志路径下只能要分析的日志不能有其他文件,可以有多个日志
- 不要在生产环境中使用本工具,因为本工具的运行会对生产环境的数据库造成压力
- dmlog.properties配置文件中log路径,注意windows下,使用”\\”代替”\”。
2、使用准备
2.1查看JDK安装情况
2.2上传并解压工具包
2.3查看sql日志是否开启
(0是未开启,1是开启)
开启sql日志
修改/dm8/data/DAMENG/sqllog.ini
设置SVR_LOG参数为1,打开SQL日志
SP_SET_PARA_VALUE(1,'SVR_LOG',1);
调用过程SP_REFRESH_SVR_LOG_CONFIG();对后面新的会话生效
验证sql日志是否生效
注意:测试完成后记得关闭
SP_SET_PARA_VALUE(1,'SVR_LOG',0);
2.4 库的页大小为32
3、工具使用
编辑dmlog.properties文件
创建log_commit表
CREATE TABLE "SYSDBA"."LOG_COMMIT"
(
"STARTTIME" DATETIME(6),
"SESS" VARCHAR(500),
"SQLSTR" TEXT,
"EXETIME" FLOAT,
"SQLSTR_SUB" VARCHAR(8000),
"ROWCOUNT" VARCHAR(8000),
"SQLSTR_PARA" VARCHAR(8000),
"WAITTIME" VARCHAR(8000),
"EUER" VARCHAR(100),
"OPTYPE" VARCHAR(30)) STORAGE(USING LONG ROW, ON "MAIN", CLUSTERBTR) ;
CREATE INDEX "IDX_EXETIME_RESULT_2021_10_12_11_22_52" ON "SYSDBA"."LOG_COMMIT"("EXETIME" ASC) STORAGE(ON "MAIN", CLUSTERBTR) ;
执行jar包命令
文件生成路径在执行文件所在文件夹中
生成的结果目录下有根据配置的执行时间和执行次数上限值命名的excel文件(xls),报错的SQL和长度超过30000的SQL会另外生成txt文件(txt),echart散点图,QPS折线图及90%平均次数和平均耗时的SQL统计图(html):
两个excel分别是按照最大执行时间和执行次数进行降序排序
优化方法和优化后时间这两列空置,方便SQL优化人员进行优化后的整理和对比。
echarts_scatter_loading10.html为echart散点图每个点的SQL信息可以显示和拷贝
散点图支持
1 筛选SEL/DDL/INS/CAL等分类,只用点击去除或者选择对应类别,即可显示对应sql在图形上分布点;
2 支持散点图区域放大功能,鼠标指定位置,进行滚轮缩放,可以对语句进行方便放大。
3 点击每个点,可获得每个点的SQL详细信息。
4 右上角,可以点击进行保存图片。
echarts_scatter_Statistics.html为散点图基础上生成的按照执行90%平均次数和平均耗时的SQL统计图。
echarts_qps.html为QPS折线图。
达梦学习社区地址:https://eco.dameng.com