SYS_KWR 是 KingbaseES 自动负载信息库(Kingbase Auto Workload Repertories)的简称,
它通过周期性自动记录性能统计相关的快照,分析出 KingbaseES 的操作系统运行环境、数据库时间组成、等待事件和 TOP SQL 等性能指标,为数据库性能调优提供指导。
一、修改数据库参数
修改数据库参数文件kingbase.conf:
track_sql = on
track_instance = on
track_wait_timing = on
track_counts = on
track_io_timing = on
track_functions = 'all'
sys_stat_statements.track = 'top'
需要重启数据库
二、生成快照
SELECT * FROM perf.create_snapshot();
三、查看快照号
test=# SELECT * FROM perf.kwr_snapshots order by snap_time;
snap_id | snap_time | sess_count | snap_version
---------+------------------------+------------+--------------
39 | 2023-01-30 17:07:10+08 | 0 | 1.4
40 | 2023-01-30 18:07:21+08 | 0 | 1.4
41 | 2023-01-30 23:40:27+08 | 0 | 1.4
42 | 2023-01-31 16:35:46+08 | 1 | 1.4
43 | 2023-02-01 09:54:52+08 | 1 | 1.4
44 | 2023-02-01 10:55:04+08 | 0 | 1.4
38 | 2023-01-30 16:07:06+08 | 0 | 1.4
四、生成KWR报告
SELECT * FROM perf.kwr_report(1,2); -- 生成 TEXT 版本报告
SELECT * FROM perf.kwr_report(5021,5119, 'html'); -- 生成 HTML 版报告
以上生成KWR报告默认位于数据库data目录下sys_log子目录。
指定生成KWR到某个路径:
SELECT * FROM perf.kwr_report_to_file(5062,5096, 'html', '/home/kingbase/kwr20231111_2.html');