DM8性能分析之sqllog

前言

在我们对数据库性能分析时,可借助sqllog功能,找到数据库运行中开销较大的sql语句,进一步分析优化,下面介绍一下配置使用方法


一、配置sqllog参数文件

配置文件所在路径:$SYSTEM_PATH/sqllog.ini

[dmdba@localhost bin]$ cat ../data/PROD/dm.ini | grep SYSTEM_PATH
		SYSTEM_PATH                     = /dm8/data/PROD            #system path
[dmdba@localhost bin]$ vim ../data/PROD/sqllog.ini
BUF_TOTAL_SIZE          = 10240    #SQLs Log Buffer Total Size(K)(1024~1024000)
BUF_SIZE                = 1024     #SQLs Log Buffer Size(K)(50~409600)
BUF_KEEP_CNT            = 6       #SQLs Log buffer keeped count(1~100)

[SLOG_ALL]
    FILE_PATH    = /home/dmdba/sqllog/
    PART_STOR    = 0
    SWITCH_MODE  = 2
    SWITCH_LIMIT   = 128
    ASYNC_FLUSH   = 1
    FILE_NUM = 20
    ITEMS    = 0
    SQL_TRACE_MASK  = 2:3:25:28
    MIN_EXEC_TIME = 100
    USER_MODE   = 0
    USERS =

下面介绍几个主要参数的含义:

FILE_PATH:
SQLLOG文件路径 默认值:..\LOG

SWITCH_MODE
表示 SQL 日志文件切换的模式:
0:不切换
1:按文件中记录数量切换
2:按文件大小切换
3:按时间间隔切换

SWITCH_LIMIT
不同切换模式 SWITCH_MODE 下,意义不同:
按数量切换时,一个日志文件中的 SQL 记录条数达到多少条之后系统会自动将日志切换到另一个文件中。一个日志文件中的 SQL 记录条数达到多少条之后系统会自动将日志切换到另一个文件中。有效值范围(1000~ 10000000)
按文件大小切换时,一个日志文件达到该大小后,系统自动将日志切换到另一个文件中,单位为 M。有效值范围(1~ 2000)
按时间间隔切换时,每个指定的时间间隔,按文件新建时间进行文件切换,单位为分钟。 有效值范围(1~ 30000)
默认值:100000

FILE_NUM
总共记录多少个日志文件,当日志文件达到这个设定值以后,再生成新的文件时,会删除最早的那个日志文件,日志文件的命令格式为:DMSQL_实例名_日期时间.LOG。
当这个参数配置成 0 时, 只会生成两个日志相互切换着记录。有效值范围(0~1024)。例如, 当FILE_NUM=0, 实例名为 PDM 时, 根据当时的日期时间,生成的日志名称为:
DMSQL_PDM_20200719_163701.LOG,
DMSQL_PDM_20200719_163702.LOG
默认值:0


ASYNC_FLUSH
是否打开异步 SQL 日志功能。0:表示关闭; 1:表示打开
默认值:0

ITEMS
配置 SQL 日志记录中的哪些列要被记录。
该参数是一个格式化的字符串,表示一个记录中的哪些项目要被记录,格式为:列号:列号:列号。
例如: 3:5:7 表示第 3,第 5,第 7 列要被记录。
0 表示记录所有的列
1 TIME 执行的时间
2 SEQNO 服务器的站点号
3 SESS 操作的 SESS 地址
4 USER 执行的用户
5 TRXID 事务 ID
6 STMT 语句地址
7 APPNAME 客户端工具
8 IP 客户端 IP
9 STMT_TYPE 语句类型
10 INFO 记录内容
11 RESULT 运行结果,包括运行用时和影响行数(可能没有)
默认值:0

SQL_TRACE_MASK
LOG 记录的语句类型掩码,是一个格式化的字符串,表示一个 32 位整数上哪一位将被置为 1,置为 1 的位则表示该类型的语句要记录,格式为:位号:位号:位号。列如: 3:5:7 表示第 3,第 5,第 7 位上的值被置为 1。每一位的含义见下面说明(2~17 前提是:SQL 标记位 24 也要配置)1 全部记录(全部记录并不包含原始语句)
2 全部 DML 类型语句
3 全部 DDL 类型语句
4 UPDATE 类型语句(更新)
5 DELETE 类型语句(删除)
6 INSERT 类型语句(插入)
7 SELECT 类型语句(查询)
8 COMMIT 类型语句(提交)
9 ROLLBACK 类型语句(回滚)
10 CALL 类型语句(过程调用)
11 BACKUP 类型语句(备分)
12 RESTORE 类型语句(恢复)
13 创建对象操作(CREATE DDL)
14 修改对象操作(ALTER DDL)
15 删除对象操作(DROP DDL)
16 授权操作(GRANT DDL)
17 回收操作(REVOKE DDL)
22 绑定参数
23 存在错误的语句(语法错误,语义分析错误等)
24 是否需要记录执行语句
25 是否需要打印计划和语句和执行的时间
26 是否需要记录执行语句的时间
27 原始语句(服务器从客户端收到的未加分析的语句)
28 是否记录参数信息,包括参数的序号、数据类型和值
29 是否记录事务相关事件
默认值:1
可设置为:2:3:25:28

MIN_EXEC_TIME
详细模式下,记录的最小语句执行时间,单位为毫秒。执行时间小于该值的语句不记录在日志文件中。有效值范围(0~ 4294967294)
默认值:0
可设置为:100

USER_MODE
SQL 日志按用户过滤时的过滤模式,取值:
0:关闭用户过滤
1:白名单模式,只记录列出的用户操作的SQL 日志
2:黑名单模式,列出的用户不记录 SQL 日志
默认值:0

USERS
打开 USER_MODE 时指定的用户列表。格式为:用户名:用户名:用户名
默认值:空值

二、sqllog开关

使用sp_set_para_value(1,‘SVR_LOG’,1);开启

或者修改配置文件开启

[dmdba@localhost bin]$ vim  ../data/PROD/dm.ini 

改完需要重启数据库生效
在这里插入图片描述
当把dm.ini参数SVR_LOG置为1,才会打开SQL日志。
0:表示关闭;
1:表示打开;
2:按文件中记录数量切换日志文件,日志记录为详细模式;
3:不切换日志文件,日志记录为简单模式,只记录时间和原始语句。

如果在服务器启动过程中,修改了sqllog.ini文件。修改之后的文件,只要调用过程SP_REFRESH_SVR_LOG_CONFIG() 就会生效。

三、配置转换工具

查看是否生成sqllog
[dmdba@localhost bin]$ ll /home/dmdba/sqllog/
总用量 900
-rw-r--r--. 1 dmdba dinstall 920460 531 14:22 dmsql_TT_20220531_141800.log

上传jar包以及配置文件
[dmdba@localhost bin]$ ll Dmlog_DM_8.2.jar 
-rwxr-xr-x. 1 dmdba dinstall 5889129 929 2021 Dmlog_DM_8.2.jar

[dmdba@localhost bin]$ cat dmlog.properties  //根据实际修改
#分析非MPP产生的日志为0,MPP产生的日志为1
ismpp=0
#数据库IP地址
ip=127.0.0.1
#数据库端口号
port=5238
#数据库用户名
username=SYSDBA
#数据库密码
password=SYSDBA
#是否直接根据已有数据生成分析结果和散点图
use_result=0
#SQL日志的文件夹绝对路径,并保证文件夹中只有SQL日志文件,路径请用两个反杠,例如:D:\\360Downloads\\log
sqlpath=/home/dmdba/sqllog/
#您想分析多少毫秒以上的SQL语句
time=0
#您想分析执行多少次以上的SQL语句
frequency=0
#是否需要替换SQL语句中的参数,替换参数1,不替换参数0
is_replace=1
#散点图中最大执行时间ms LEAST(exetime,2000) 
max_exetime=10000

[dmdba@localhost bin]$ java -jar Dmlog_DM_8.2.jar 
创建目录RESULT_2022_05_31_14_20_42成功!
----------------分析文件:dmsql_TT_20220531_141800.log----------------
----------------创建索引---------------------
----------------创建索引成功-------------------
----------------入库完毕,开始分析---------------
----------------分析完毕,请查看结果-------------

[dmdba@localhost bin]$ ll RESULT_2022_05_31_14_20_42/
总用量 208
-rw-r--r--. 1 dmdba dinstall   5373 531 14:20 DATA_ERR_LOG.txt
-rw-r--r--. 1 dmdba dinstall 135231 531 14:20 \LOG_SCATTER_PLOT.png
-rw-r--r--. 1 dmdba dinstall  31232 531 14:20 more_than_0_ms_log_result.xls
-rw-r--r--. 1 dmdba dinstall  31232 531 14:20 more_than_0_times_log_result.xls
-rw-r--r--. 1 dmdba dinstall      0 531 14:20 SQL_ERR_LOG.txt

总结

以上就是配置sqllog的方法

达梦技术社区:https://eco.dameng.com

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值