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报告 

  1. 生成 kddm 报告

SELECT * FROM perf.kddm_report(1, 2);

说明:KDDM 报告也会自动在数据库服务器 DATA 目录的 sys_log 下保存一份。

  1. 生成 kddm 报告并保存到指定文件

SELECT * FROM perf.kddm_report_to_file(1, 2, '/home/test/kddm_1_2.txt');
  1. 为指定 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 快照内容,给出以下的建议和报告:

  1. 数据库时间分解报告

  2. CPU 相关建议

    • TOP SQL 建议

    • 使用扩展 SQL 协议建议

    • CPU 负载高建议

    • 优化回滚事务建议

    • 优化堆页面裁剪建议

    • 使用索引建议

  3. 等待事件相关建议

    • TOP 等待事件建议

    • LWLock 类等待事件建议

    • IO 类等待事件建议

    • Client 类等待建议

  4. 完整 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的更多相关文章

  1. [转]Oracle10g数据库自动诊断监视工具(ADDM)使用指南

    第一章 ADDM简介                 在Oracle9i及之前,DBA们已经拥有了很多很好用的性能分析工具,比如,tkprof.sql_trace.statspack.set even ...

  2. 自动诊断档案库(ADR)学习

    (1)ADR概述 Oracle 11g的FDI(Fault Diagnosability Infrastructure)是自动化诊断方面的一个增强,其核心组件为自动诊断库(Automatic Diag ...

  3. Oracle ADDM性能诊断利器及报告解读

    性能优化是一个永恒的话题,性能优化也是最具有价值,最值得花费精力深入研究的一个课题,因为资源是有限的,时间是有限的.在Oracle数据库中,随着Oracle功能的不断强大和完善,Oralce数据库在性 ...

  4. python--selenium实用的自动生成测试HTML报告方法--HTMLTestRunner

    python--selenium实用的自动生成测试HTML报告方法--HTMLTestRunner 下面给大家介绍下用HTMLTestRunner模块自动生成测试报告的方法. 一.首先我们导入unit ...

  5. 141_Power Query之获取钉钉审批流自动刷新Power BI报告

    博客:www.jiaopengzi.com 焦棚子的文章目录 请点击下载附件 一.背景 钉钉办公给很多企业带来了很多方便,比如审批流线上化,通用化.线上化填写后,数据自动获取又是一个硬伤了,虽然数据可 ...

  6. [转帖]在 k8s 中自动为域名配置 https

    在 k8s 中自动为域名配置 https https://juejin.im/post/5db8d94be51d4529f73e2833 随着 web 的发展,https 对于现代网站来说是必不可少的 ...

  7. 131_Power Query之获取钉钉日志自动刷新Power BI报告

    博客:www.jiaopengzi.com 焦棚子的文章目录 请点击下载附件 一.背景 最近在玩钉钉日志,企业填写简单数据后方便汇总到一起比较实用的工具,但数据填写以后还是需要下载日志报表,比较麻烦. ...

  8. OCP读书笔记(9) - 诊断数据库

    数据库恢复顾问 Data Recovery Advisor的命令行选项 1. 启动 RMAN 进程并连接到目标$ rman target=/ 2. 假设发生了某个错误,希望找出原因,使用 list f ...

  9. IntelliJ IDEA 的 20 个代码自动完成的特性

    http://www.oschina.net/question/12_70799 在这篇文章中,我想向您展示 IntelliJ IDEA 中最棒的 20 个代码自动完成的特性,可让 Java 编码变得 ...

  10. SQL Server 2008创建定期自动备份任务

    首先需要启动SQL Server Agent服务,这个服务如果不启动是无法运行新建作业的,点击“开始”–“所有程序”–“Microsoft SQL Server 2008”–“启动SQL Server ...

随机推荐

  1. GeminiDB Cassandra接口新特性PITR发布:支持任意时间点恢复

    本文分享自华为云社区<GeminiDB Cassandra接口新特性PITR发布:支持任意时间点恢复>,作者: GaussDB 数据库. 技术背景 当业务发生数据损毁.数据丢失.数据误删除 ...

  2. 全量通过,华为云GaussDB首批完成信通院全密态数据库评测

    摘要:100%全量通过!基于全栈创新计算架构的全密态数据库华为云GaussDB,完成了中国信通院组织的首批"全密态数据库"产品能力评测. 本文分享自华为云社区<全量通过!华为 ...

  3. 探究Python源码,终于弄懂了字符串驻留技术

    摘要:在本文中,我们将深入研究 Python 的内部实现,并了解 Python 如何使用一种名为字符串驻留(String Interning)的技术,实现解释器的高性能. 每种编程语言为了表现出色,并 ...

  4. 火山引擎A/B测试推出智能流量调优实验,助力汽车行业破局营销困境

    更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 2023年是汽车行业挑战加剧的一年,在这样一个变革时期,多家车企都在进行创新技术和战略调整,实现灵活的科学决策,在 ...

  5. 火山引擎 DataLeap 通过中国信通院测评,数据管理能力获官方认可!

      近日,火山引擎大数据研发治理套件 DataLeap 通过中国信通院第十五批"可信大数据"测评,在数据管理平台基础能力上获得认证.   "可信大数据"产品能力 ...

  6. Nacos 1.2.1 集群搭建(三) Nginx 配置 集群

    配置 Nginx 可以把.conf 文件拉到本地,配置好再传上去 #gzip on; upstream cluster{ server 192.168.0.113:8848; server 192.1 ...

  7. 麻省理工公开课:微积分,中文字幕视频+PDF

    数学是机器学习的语言,统计是构建机器学习的基础,线性代数为机器学习提供了矩阵这一强大工具,但是要充分理解神经网络以及深度学习如何运作的,还需要学好微积分. 大家应该多少对微积分有些基础,但是很难将其与 ...

  8. UVA540 Team Queue(双queue)

    题目大意 有一条长队,每个人均唯一属于一个组(有编号),执行给定操作序列,输出相应结果.操作如下: (假设长队q1) ENQUEUE x:标号为x的人入队,若q1中存在和x属于同一组的人,则将x插入长 ...

  9. 区间DP练习题题解

    算法讲解:Here AcWing 282. 石子合并 (模板) 题目链接:Here const int N = 310; int a[N], s[N]; int dp[N][N]; void solv ...

  10. M-SOLUTIONS Programming Contest 2020 游记 (AB水题,CD模拟,E题DFS)

    A - Kyu in AtCoder 水题 B - Magic 2 题意很好理解,但写的时候注意一下边界 void solve() { int a, b, c, k; cin >> a & ...