https://help.kingbase.com.cn/v8/perfor/performance-optimization/performance-optimization-6.html#sys-ksh

KWR报告是Diff报告的基础,在数据库运行过程中,通常在业务的高峰期和低谷期,或者在参数调整之后,数据库的性能指标都会发生变化,那么分析这种变化的根因对于我们分析数据库性能,进行优化调整是非常必要的。Diff报告的作用就是分析两个KWR报告之间的差异,找出性能变化的原因或分析性能优化的效果。

Diff 报告仅支持 HTML 格式输出。

3.3.8.1. 快速生成 Diff 报告 

通过 KWR 自动快照或者手动快照创建一系列 KWR 快照,然后就可以通过 perf.kwr_diff_report_to_file({snap_1}, {snap_2}, {snap_3}, {snap_4}, {file_path}) 来创建 Diff 报告:

参数说明:

  • snap_1: 生成第一份KWR报告的起始快照ID

  • snap_2: 生成第一份KWR报告的结束快照ID

  • snap_3: 生成第二份KWR报告的起始快照ID

  • snap_4: 生成第二份KWR报告的结束快照ID

  • file_path: 报告生成地址,示例:’/home/username/kwr_diff_report.html’

CREATE EXTENSION sys_kwr;
SELECT * FROM perf.create_snapshot();
CREATE TABLE t1(a int);
INSERT INTO t1 SELECT generate_series(1, 1000000);
SELECT * FROM perf.create_snapshot();
INSERT INTO t1 SELECT generate_series(1, 1000000);
SELECT * FROM perf.create_snapshot();
INSERT INTO t1 SELECT generate_series(1, 1000000);
SELECT * FROM perf.create_snapshot();
SELECT * FROM perf.kwr_diff_report_to_file(1, 2, 3, 4, '/home/test/kwr_diff_rpt_00.html');

3.3.8.2. GUC 参数说明 

KWR Diff 报告属于KWR的一个子模块,继承KWR的现有GUC参数。具体内容请参考SYS_KWR小节中关于配置GUC参数的说明。

3.3.8.3. 用户接口说明 

生成Diff报告的接口有两个:

perf.kwr_diff_report_to_file({snap_1}, {snap_2}, {snap_3}, {snap_4}, {file_path}) 该接口在用户指定的目录下生成Diff报告。

perf.kwr_diff_report({snap_1}, {snap_2}, {snap_3}, {snap_4}) 该接口在默认的数据目录下的sys_log目录中生成Diff报告,同时在ksql中生成在线报告。如果sys_log目录不存在,那么仅生成一份在线报告。 默认报告的命名格式为:kwr_diff_1_2_3_4_20220531_140633.html,即前缀kwr_diff_4个快照ID_年月日_时分秒.html。

3.3.8.4. 查看Diff报告 

3.3.8.4.1. 报告结构 

Diff报告主要由三部分组成:

1、报告头:

这部分主要是列出数据库实例的版本、两份KWR报告的快照信息。

2、报告摘要:

这部分的主要报告是:主机配置、负载分析、实例效率百分比(目标 100%)、Top 10前台等待事件、Top 10前台等待事件分类、主机IO、IO分析、内存统计以及SQL语句数统计。

3、报告主体:

报告主体提供了更加全面的性能指标对比信息,主要包括:时间模型和等待事件统计、内存统计、实例IO统计、锁活动统计、关键活动统计、TOP SQL统计、后台写统计、数据库统计、数据库对象统计和配置参数。

3.3.8.4.2. 报告内容 

Diff报告内容在统计数据方面与原始KWR报告一致,同时提供了对比信息。下面举几个例子简要说明报告数据的查看方法,其它报告相同。

在Diff报告中,1st 表示第一份KWR报告的统计数据,2nd 表示第二份KWR报告的统计数据,Diff 表示两份报告统计量的差值, % Diff 表示第二份报告相比第一份报告统计量的变化百分比。

在报告头中,显示了数据库实例信息,启动时间,版本信息以及两份KWR报告的快照信息,并显示了快照时长和数据库时间的%Diff。

在Top 10 前台等待事件和Top 10 前台等待事件分类这两个diff报告中,为了方便对比,查看两份KWR报告中等待事件的变化情况,分成左右两部分进行了展示。如果某个事件仅在一份KWR报告中出现,那么在另一份KWR报告中用 '-' 表示。

在时间模型统计报告中,按“% 数据库时间”的Diff排序对两份KWR报告进行了对比。

在按数据库时间排序的 SQL 语句报告中,从平均时间(ms)、总占比(%)、CPU占比(%)、等待占比(%)这四个方面对比了两份KWR报告中的SQL语句。点击Query Hash列可以跳转到完整SQL列表的对应的SQL语句上。

[转帖]3.3.8. KWR运行期对比报告 KWR DIFF的更多相关文章

  1. C++学习笔记28:运行期型式信息

    RTTI 运行期标识对象的型式信息 优势:允许使用指向基类的指针或引用自如地操作派生类的对象 typeid:获取表达式的型式:type_info:型式信息类 头文件:typeinfo 对象转型模板 d ...

  2. C++编译期多态与运行期多态

    前言 今日的C++不再是个单纯的"带类的C"语言,它已经发展成为一个多种次语言所组成的语言集合,其中泛型编程与基于它的STL是C++发展中最为出彩的那部分.在面向对象C++编程中, ...

  3. Effective Objective-C 2.0 — 第二章 对象、消息、运行期 - 第六条:理解“属性”这一概念

    开发者通过对象来 存储并传递数据. 在对象之间传递数据并执行任务的过程就叫做“消息传递”. 这两条特性的工作原理? Objective-C运行期环境(Objective-C runtime) ,提供了 ...

  4. effective OC2.0 52阅读笔记(二 对象、消息、运行期)

    第二章:对象.消息.运行期 6 理解属性这一概念 总结:OC解决硬编码偏移量问题的做法,一种方案是把实例变量当做一种存储偏移量所用的特殊变量,交由类对象保管,偏移量会在运行期查找,叫做稳固的“应用程序 ...

  5. Spring事务管理只对出现运行期异常进行回滚

    原文:http://blog.csdn.net/abc19900828/article/details/39497631 使用spring难免要用到spring的事务管理,要用事务管理又会很自然的选择 ...

  6. JVM-程序编译与代码晚期(运行期)优化

    晚期(运行期)优化 1.为了提高热点代码的执行效率,在运行时,虚拟机将会把这些代码编译成与本地平台相关的机器码,并进行各种层次的优化,完成这个任务的编译器称为即时编译器(Just In Time,JI ...

  7. atitit. hb 原生sql跨数据库解决原理 获得hb 数据库类型运行期获得Dialect

    atitit. hb 原生sql跨数据库解决原理 获得hb 数据库类型运行期获得Dialect   #-----原理 Hibernate 运行期获得Dialect   2010-07-28 12:59 ...

  8. JIT晚期(运行期)

    在部分的商用虚拟机(Sun HotSpot.IBM J9)中,Java程序最初是通过解释器(Interpreter)进行解释执行的,当虚拟机发现某个方法或代码块的运行特别频繁时,就会把这些代码认定为& ...

  9. Apache Spark源码走读之3 -- Task运行期之函数调用关系分析

    欢迎转载,转载请注明出处,徽沪一郎. 概要 本篇主要阐述在TaskRunner中执行的task其业务逻辑是如何被调用到的,另外试图讲清楚运行着的task其输入的数据从哪获取,处理的结果返回到哪里,如何 ...

  10. java运行期类型鉴定

    运行期类型识别?RTTI? 假如我们有一个基类的引用,这个引用也可以作为子类的引用嘛,现在我们想知道这个引用的类型到底是啥? 当从子类到基类之后有很多的信息都会丢失掉,比如有一个人类的对象可以看成普遍 ...

随机推荐

  1. 一文带你认识MindSpore新一代分子模拟库SPONGE

    [本期推荐专题]物联网从业人员必读:华为云专家为你详细解读LiteOS各模块开发及其实现原理. 摘要:基于MindSpore自动并行.图算融合等特性,SPONGE可高效地完成传统分子模拟过程,利用Mi ...

  2. 手把手教你如何配置DBeaver对接FusionInsigth MRS Spark2x

    摘要:dbeaver是免费和开源为开发人员和数据库管理员通用数据库工具.本文介绍如何配置dbeaver对接FusionInsigth MRS Spark2x. 本文分享自华为云社区<DBeave ...

  3. 如何对APP进行安全加固

    ​ 如何对APP进行安全加固 引言 如今,移动应用市场蓬勃发展,APP数量呈现爆炸性增长.随着5G技术的广泛应用,APP的增长趋势持续增强.然而,由于APP的泛滥,网络攻击者的目标也在逐渐转移,数亿的 ...

  4. 火山引擎 ByteHouse 与白鲸开源完成兼容性认证,加速数据价值释放

    更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 数据作为新型生产要素,已快速融入生产.分配.流通.消费和社会服务管理等各环节,深刻改变着生产方式.生活方式和治理方 ...

  5. 火山引擎 DataLeap:在数据研发中,如何提升效率?

    更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 在数仓及中台研发过程中,研发人员经常需要在不同任务中维护相同或类似代码,不仅费时费力,并且代码迭代后也面临不同业务 ...

  6. Oracle 删除唯一约束

    1.查出有哪些约束 SELECT CONSTRAINT_NAME,CONSTRAINT_TYPE,STATUS FROM USER_CONSTRAINTS WHERE TABLE_NAME ='D_D ...

  7. Python 网络编程 netaddr

    1.安装 netaddr 组件 pip install netaddr -i https://mirrors.aliyun.com/pypi/simple/ from netaddr import I ...

  8. cookie与session简介 django操作cookie django操作session

    目录 cookie与session简介 早期cookies 随机字符串解决cookies安全问题 禁止浏览器保存cookies django操作cookie set_cookie set_signed ...

  9. PS CJ20N 项目定义属性字段增强

    一.CJ20N添加字段  二.用户出口  三.校验必输项 博客频遭盗窃,请移步公众号"斌将军",输入关键字"项目定义字段增强"查看 TRANSLATE with ...

  10. 【HZERO】feign调用

    feign调用 https://open.hand-china.com/community/detail/603204901962649600 # Hiam获取用户信息示例