人大金仓学习之二_ksh和kddm的学习
摘要
承接上一篇文章
主要是这里总结一下ksh相关的文档.
这里学习了很多文档:
https://help.kingbase.com.cn/v8/perfor/performance-optimization/performance-optimization-6.html#sys-kddm
https://help.kingbase.com.cn/v8/perfor/sql-optimization/index.html
说明
安装和还是用不在阐述
快速学习一下ksh相关的内容等.
注意上一篇仅是kwr,这边会完整一些.
配置文件修改
# 新增获取修改为:
shared_preload_libraries = 'sys_kwr,sys_ksh,sys_stat_statements,liboracle_parser'
# 性能计数器相关为:
track_activities = on
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'
sys_stat_statements.track_parse = on
sys_stat_statements.track_plan = on
sys_stat_statements.max = 10000
sys_kwr.ringbuf_size = 200000
sys_kwr.enable = on
sys_kwr.history_days = 14
sys_kwr.interval = 30
sys_kwr.collect_ksh = on
ksh的相关使用
# 注意如果没有需要创建extension
与 kwr的命令类似: CREATE EXTENSION sys_kwr;
需要创建ksh的扩展.
create extension sys_ksh;
# 内存内的数据可以如此查看
SELECT * FROM perf.session_history;
# 数据库的历史视图
SELECT * FROM perf.ksh_history;
# 生成报告
SELECT * FROM perf.ksh_report({start_ts}, {duration}, {slot_width}, {format});
start_ts: 报告开始时间,默认:当前时间-15分钟
duration: 报告时长,默认:15分钟,最大不超过60
slot_width: 报告最小区间,输入0时系统自动计算合适的宽度,默认:0
format: 报告生成格式,可选择 ’html’和’text’两种格式,默认 TEXT 格式
select * from perf.ksh_report('2023-07-01 09:00:00',15,0,'text');
# 生成报告到文件
select * from perf.ksh_report_to_file('2023-07-01 09:00:00',15,0,'E:\zhaobsh_ksh.html','html');
# 根据kwr的快照生成报告
select * from perf.ksh_report_to_file_by_snapshots(1,2,'e:\zhaobsh_kwr_toksh.html','html');
很多学习文档其实是在:
https://help.kingbase.com.cn/v8.6.7.12/development/sql-plsql/ref-extended-plug-in/sys_stat_statements.html
中.
kddm的使用
Study from :
https://help.kingbase.com.cn/v8/perfor/performance-optimization/performance-optimization-6.html#sys-kddm
# 如果不存在则创建, 需要修改配置文件如上一节
CREATE EXTENSION sys_kwr;
SELECT * FROM perf.create_snapshot();
create table t1 (nametest varchar(30));
INSERT INTO t1 SELECT generate_series(1, 1000000);
SELECT * FROM perf.create_snapshot();
SELECT * FROM perf.kddm_report(1,2);
可以查看一个文本样式的 kddm 报告.
kddm的使用之二
# 可以保存成 txt文件进行查看
SELECT * FROM perf.kddm_report_to_file(1, 2, 'e:\zhaobsh_kddm.txt');
# 注意当参数如此时 可以进行更加详细的结果
sys_stat_statements.track = 'all'
# 可以使用 如下语句获取参数优化使用说明
SELECT * FROM perf.kddm_guc_advisor();
kwrdiff 的使用
select * from perf.kwr_diff_report({snap_1}, {snap_2}, {snap_3}, {snap_4})
可以在 data/sys_log 下面生成一个结果文件
文件名字为: kwr_diff_1_2_3_4_20220531_140633.html,即前缀kwr_diff_4个快照ID_年月日_时分秒.html。
如果保存文件为:
perf.kwr_diff_report_to_file({snap_1}, {snap_2}, {snap_3}, {snap_4}, {file_path})