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. Unreal学习笔记1-打印输出

    1. 概述 相比各种打断点调试的办法,还是更习惯使用打印输出来进行调试. 2. 详论 2.1. 代码 这里写了三个函数:分别是输出到屏幕,输出到警告日志,输出错误日志. Output.h: #prag ...

  2. Java程序接入ChatGPT

    目录 0 前言 1 还想体验的小伙伴可以试试 2 Java接入前准备 3 官方支持接入语言 4 调用费用 5 接口调用说明 6 代码实现 6.1 postman调用 6.2 Java调用 7 小结 0 ...

  3. 赶在520之前,程序员如何用Python送上最特别的“我爱你”表白

    摘要:每到情人节.七夕节,不少小伙伴大伙伴们都会遇到这样一个世纪问题--怎么给女朋友/老婆一个与众不同的节日惊喜.今天给大家分享一个独特的表白方法--用"我爱你"拼出心爱人的模样! ...

  4. 华为云GaussDB亮相金融业数据库技术大会

    本文分享自华为云社区<华为云GaussDB亮相金融业数据库技术大会,激发金融行业发展新动能>,作者:GaussDB 数据库 . 近日,由北京金融信息化研究所主办的2023金融业数据库技术大 ...

  5. 全域Serverless+AI,华为云加速大模型应用开发

    日前,华为全联接大会2023在上海召开.华为云CTO张宇昕在大会上发布了基于Serverless技术的大模型应用开发框架,框架以面向AI领域全新升级的FunctionGraph 3.0为核心,将Baa ...

  6. 技术实践丨基于MindSpore框架Yolov3-darknet模型的篮球动作检测体验

    摘要:通过对篮球动作的分类训练及识别检测实例的讲解和体验,使我们了解了Yolov3模型的原理.架构等基本知识,为日后的深入学习奠定了基础. 背靠全新的设计理念,华为云推出了 MindSpore深度学习 ...

  7. 带你认识全新的华为云IoT路网数字化服务

    摘要:随着通信技术的发展,交通领域提出以C-V2X车路协同技术来弥补单车智能存在的缺陷,从而推动智能驾驶.自动驾驶技术的成熟. 本文分享自华为云社区<带你全新认识华为云IoT路网数字化服务> ...

  8. 再谈BOM和DOM(5):各个大流浪器DOM和BOM里面的那些坑—兼容性

    三大不冒泡事件 所有浏览器的focus/blur事件都不冒泡,万幸的是大部分浏览器支持focusin/focusout事件,不过可恶的firefox连这个都不支持. IE6.7.8下 submit事件 ...

  9. 非root安装Anaconda

    1.下载对应版本的Anaconda (wget+路径) 下载地址:https://repo.anaconda.com/archive/ 或者清华镜像:https://mirrors.tuna.tsin ...

  10. 通用漏洞评分系统 (CVSS)系统入门指南

    通用漏洞评分系统 (CVSS) 是一个公共框架 ,用于评估软件中安全漏洞的严重性.这是一个中立的评分系统,让所有企业能够使用相同的评分框架对各种软件产品(从操作系统.数据库再到 Web 应用程序)的 ...