[转帖]3.3.7. 自动诊断和建议报告SYS_KDDM
https://help.kingbase.com.cn/v8/perfor/performance-optimization/performance-optimization-6.html#sys-ksh
KDDM 是 KingbaseES 性能自动诊断和建议的报告。它基于 KWR 快照采集的性能指标和数据库时间模型(DB Time),自动分析等待事件、IO、网络、内存和 SQL 执行时间等,给出一系列性能优化建议。通过 KDDM 报告,能够实现数据库性能的快速调优。
KDDM 存在于 KWR 插件里,和 KWR 一起对外提供服务。
目前 KDDM 报告仅支持 TEXT 格式,不支持 HTML 格式输出。
3.3.7.1. 快速生成 KDDM 报告 ¶
通过 KWR 自动快照或者手动快照创建一系列 KWR 快照,然后就可以通过 perf.kddm_report({snap_1}, {snap_2}) 来创建 KDDM 报告:
CREATE EXTENSION sys_kwr;
SELECT * FROM perf.create_snapshot();
INSERT INTO t1 SELECT generate_series(1, 1000000);
SELECT * FROM perf.create_snapshot();
SELECT * FROM perf.kddm_report(1,2);
生成的报告如下:
SELECT * FROM perf.kddm_report(1,2);

3.3.7.2. 使用 KDDM ¶
3.3.7.2.1. 配置 GUC 参数 ¶
sys_kwr.language:指定 KDDM 报告输出的语言,TEXT类型,有效的值:'english'/'eng'/'chinese'/'chn',默认 'chinese',即按中文显示报告。
说明:KDDM 报告依赖 KWR 快照,关于KWR快照部分 GUC 参数,请参考 KWR 相关章节。
3.3.7.2.2. 生成KDDM报告 ¶
生成 kddm 报告
SELECT * FROM perf.kddm_report(1, 2);
说明:KDDM 报告也会自动在数据库服务器 DATA 目录的 sys_log 下保存一份。
生成 kddm 报告并保存到指定文件
SELECT * FROM perf.kddm_report_to_file(1, 2, '/home/test/kddm_1_2.txt');
为指定 query id 的 SQL 语句生成 SQL 报告
SELECT * FROM perf.kddm_sql_report(1, 2, 5473583404117387630);
根据快照范围和具体的 SQL ID,给出 SQL 详细报告,主要用于分析耗时较多的 SQL 语句占用的 CPU,IO 资源的使用情况。
3.3.7.3. KDDM 报告 ¶
kddm 报告根据 KWR 快照内容,给出以下的建议和报告:
数据库时间分解报告
CPU 相关建议
TOP SQL 建议
使用扩展 SQL 协议建议
CPU 负载高建议
优化回滚事务建议
优化堆页面裁剪建议
使用索引建议
等待事件相关建议
TOP 等待事件建议
LWLock 类等待事件建议
IO 类等待事件建议
Client 类等待建议
完整 SQL 列表
每条具体建议包含三项内容:
建议依据:描述了数据库当前存在的性能问题。
建议动作:按优先级给出性能优化的建议操作,通过指定的操作选项能够改善当前存在的性能问题。
参考信息:描述了当前性能问题的具体指标。
示例报告:TOP SQL 建议
该报告展示可以通过 TOP SQL 找到消耗资源最多的SQL语句,当设置成如下配置参数时,对外提供树状结构显示 TOP SQL 的报告。
sys_stat_statements.track = 'all'

示例报告:使用索引建议
该报告展示可以通过使用索引来提高 SQL 性能的建议,不仅给出了具体的 SQL 语句,还会给出创建索引的 DDL 语句,以及预期收益率。
该报告也给出了存在但未被使用的索引,DBA 可以根据实际情况进一步操作。
合理的索引使用可以加速检索过程。

3.3.7.4. GUC 参数建议 ¶
KDDM 提供 GUC 参数建议功能,根据数据库服务器的硬件情况和用户指定的业务类型,显示建议结果:
SELECT * FROM perf.kddm_guc_advisor(); --最大连接数:300,使用默认值
--CPU核心数:96,自动获取
--总物理内存:256 GB,自动获取
--应用类型:OLTP,使用默认值
--建议参数列表:
max_connections = 300
shared_buffers = 64GB
effective_cache_size = 192GB
maintenance_work_mem = 2GB
work_mem = 55MB
wal_buffers = 16MB
min_wal_size = 1GB
max_wal_size = 4GB
max_worker_processes = 24
max_parallel_workers_per_gather = 4
max_parallel_workers = 24
max_parallel_maintenance_workers = 4
可以通过制定最大连接数、CPU 核心数、内存大小、业务类型等参数来定制化 GUC 参数建议列表,函数的声明如下:
TEXT perf.kddm_guc_advisor(
IN conn bigint = 0,
IN service_type TEXT = 'oltp',
IN cpu bigint = 0,
IN memory bigint = 0);
参数说明:
conn:最大连接数,默认300,范围:1-1000
cpu:CPU 核心数,默认自动获取,范围:1-1000
memory:内存大小,单位为 MB,默认自动获取,范围:128MB - 1T
service_type:业务类型,默认为 ’oltp’,可选范围:
oltp:事务型数据库服务器
olap:分析性数据库服务器
web:Web服务器
desktop:桌面应用
mixed:混合应用
[转帖]3.3.7. 自动诊断和建议报告SYS_KDDM的更多相关文章
- [转]Oracle10g数据库自动诊断监视工具(ADDM)使用指南
第一章 ADDM简介 在Oracle9i及之前,DBA们已经拥有了很多很好用的性能分析工具,比如,tkprof.sql_trace.statspack.set even ...
- 自动诊断档案库(ADR)学习
(1)ADR概述 Oracle 11g的FDI(Fault Diagnosability Infrastructure)是自动化诊断方面的一个增强,其核心组件为自动诊断库(Automatic Diag ...
- Oracle ADDM性能诊断利器及报告解读
性能优化是一个永恒的话题,性能优化也是最具有价值,最值得花费精力深入研究的一个课题,因为资源是有限的,时间是有限的.在Oracle数据库中,随着Oracle功能的不断强大和完善,Oralce数据库在性 ...
- python--selenium实用的自动生成测试HTML报告方法--HTMLTestRunner
python--selenium实用的自动生成测试HTML报告方法--HTMLTestRunner 下面给大家介绍下用HTMLTestRunner模块自动生成测试报告的方法. 一.首先我们导入unit ...
- 141_Power Query之获取钉钉审批流自动刷新Power BI报告
博客:www.jiaopengzi.com 焦棚子的文章目录 请点击下载附件 一.背景 钉钉办公给很多企业带来了很多方便,比如审批流线上化,通用化.线上化填写后,数据自动获取又是一个硬伤了,虽然数据可 ...
- [转帖]在 k8s 中自动为域名配置 https
在 k8s 中自动为域名配置 https https://juejin.im/post/5db8d94be51d4529f73e2833 随着 web 的发展,https 对于现代网站来说是必不可少的 ...
- 131_Power Query之获取钉钉日志自动刷新Power BI报告
博客:www.jiaopengzi.com 焦棚子的文章目录 请点击下载附件 一.背景 最近在玩钉钉日志,企业填写简单数据后方便汇总到一起比较实用的工具,但数据填写以后还是需要下载日志报表,比较麻烦. ...
- OCP读书笔记(9) - 诊断数据库
数据库恢复顾问 Data Recovery Advisor的命令行选项 1. 启动 RMAN 进程并连接到目标$ rman target=/ 2. 假设发生了某个错误,希望找出原因,使用 list f ...
- IntelliJ IDEA 的 20 个代码自动完成的特性
http://www.oschina.net/question/12_70799 在这篇文章中,我想向您展示 IntelliJ IDEA 中最棒的 20 个代码自动完成的特性,可让 Java 编码变得 ...
- SQL Server 2008创建定期自动备份任务
首先需要启动SQL Server Agent服务,这个服务如果不启动是无法运行新建作业的,点击“开始”–“所有程序”–“Microsoft SQL Server 2008”–“启动SQL Server ...
随机推荐
- 聊聊ChatGLM中P-tuning v2的应用
论文PDF地址:https://arxiv.org/pdf/2110.07602.pdf 转载请备注出处:https://www.cnblogs.com/zhiyong-ITNote/ P-Tunin ...
- C++中自定义结构体或类作为关联容器的键
目录 1. 概述 2. 实例 1. 概述 STL中像set和map这样的容器是通过红黑树来实现的,插入到容器中的对象是顺序存放的,采用这样的方式是非常便于查找的,查找效率能够达到O(log n).所以 ...
- react+echarts出现“There is a chart instance already initialized on the dom.”
写了一个关于echatrs组件,报错dom重复 配置信息从props拿 let chart; useEffect(() => { if (chart) { updateChartView(); ...
- MySQL进阶篇:详解存储引擎InnoDB
本篇基础环境是使用navicat 12和Mysql8.0 MySQL进阶篇:第一章_一.二_存储引擎特点_InnoDB 1.1 存储引擎特点 1.1.1 InnoDB 1). 介绍 InnoDB是一种 ...
- 华为云 UCS GitOps:轻松交付多集群云原生应用
摘要:使用华为云 UCS GitOps 配置管理来交付您的多云应用. 本文分享自华为云社区<华为云 UCS GitOps:轻松交付多集群云原生应用>,作者:华为云云原生团队. 随着业务的全 ...
- 一文总结GaussDB通信原理知识
摘要:从发展历程到通信模型设计,到你了解一下GaussDB通信原理知识. MPPDB通信库发展历程 Postgres-XC 方法:采用libpq通信库实现CN和DN之间的连接,CN负责计算,DN仅进行 ...
- 实例解析丨一文搞定GaussDB CM服务异常
摘要:本文主要为大家带来如何处理GaussDB CM服务异常问题. 本文分享自华为云社区<[实例状态]GaussDB CM服务异常>,作者:酷哥. 首先确认是否是虚拟机.网络故障,底层故障 ...
- PNG文件解读(2):PNG格式文件结构与数据结构解读—解码PNG数据
PNG文件识别 之前写过<JPEG/Exif/TIFF格式解读(1):JEPG图片压缩与存储原理分析>,JPEG文件是以,FFD8开头,FFD9结尾,中间存储着以0xFFE0~0xFFEF ...
- SBOM:缓解软件供应链风险的关键
软件包含大量且范围广泛的组件.部分和相互依赖关系.需要有效缓解与使用软件相关的安全风险:需要遵守与组件相关的许可证.通过第三方代码(包括开源软件 (OSS))了解产品中所有项目的出处至关重要,无论这些 ...
- 差点错过!火山引擎VeDI帮这家企业成功挖掘200余条商机
更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 与个体消费市场临时性需求大.决策参与人少等情况不同,企业消费市场往往因为长线需求复杂.商品/服务的价格高.参与决策 ...