达梦 awr

article/2025/9/24 14:57:32

AWR 全称为自动工作集负载信息库(Automatic Workload Repository) ,采集数据库的性能相关数据,用来分析数据库性能问题,方便调优工作。 达梦中 awr 功能默认是关闭的,另外 mpp 集群不支持 awr

开启 AWR 功能

检查 awr 开启状态
达梦提供了 SF_CHECK_AWR_SYS 函数来检测系统包启用状态, 0:未启用; 1:已启用
select sf_check_awr_sys;

达梦默认未开启AWR,返回0代表还未生成awr相关对象

创建 AWR 包

达梦中可以使用 SP_INIT_AWR_SYS 过程来创建或者删除 AWR 相关对象
入参为 1 时候表示创建 DBMS_WORKLOAD_REPOSITORY 包及相关对象
入参为 0 时表示删除 DBMS_WORKLOAD_REPOSITORY 包及相关对象
SQL> SP_INIT_AWR_SYS(1);
DMSQL 过程已成功完成
已用时间: 00:00:01.575. 执行号:801

创建 AWR 相关对象时候,系统会自动生成 sysaux 表空间,用来存储 awr 相关数据.
SQL> select ID,NAME,USED_SIZE,TOTAL_SIZE from SYS."V$TABLESPACE";

可以看到调用过程后生成了 SYSAUX 表空间。
查看一下在 sysaux 表空间上存放了哪些对象, 都是 AWR 的数据源表

SELECT OWNER, SEGMENT_NAME, SEGMENT_TYPE, HEADER_BLOCK, BYTES, BLOCKSFROM DBA_SEGMENTSWHERE TABLESPACE_NAME = 'SYSAUX'ORDER BY DECODE(SEGMENT_TYPE, 'TABLE', 1, 'TABLE PARTITION', 2, 99);

当然还有其他对象
 

SELECT OBJECT_NAME,OBJECT_TYPE FROM SYS.DBA_OBJECTS WHERE CREATED >
TO_DATE('2022-08-17 17:30:48','YYYY-MM-DD HH24:MI:SS');

在这里碰到了一个问题疑似bug ,设置了ORA_DATE_FMT=1

此参数解释为  #Whether support oracle date fmt: 0:No, 1:Yes

设置此参数后awr包提示编译错误,无法编译,修改ORA_DATE_FMT=0后,重新生成awr对象才成功

设置间隔时间

创建 awr 包及相关对象后,需要设置快照采集时间间隔,单位分钟。有效范围为 [10, 525600],
默认值为 60。参数为 0 时,关闭快照
我这里设置间隔为 10 分钟, 设置成功后,可以使用 CREATE_SNAPSHOT 手动创建快照,
也可以等待设置的间隔时间后系统自动创建快照,快照 id 从 1 开始递增
SQL> CALL DBMS_WORKLOAD_REPOSITORY.AWR_SET_INTERVAL(10);

SELECT * FROM sys.WRM$_SNAPSHOT;

设置快照保留时间

可以使用 MODIFY_SNAPSHOT_SETTINGS 过程设置快照保留时间和采集时间
CALL DBMS_WORKLOAD_REPOSITORY.MODIFY_SNAPSHOT_SETTINGS(1440,30);
--设置快照保留时间为 1 天,采集时间为 30 分钟。

手工创建快照
如果不想等快照间隔自动生成, 可以直接调用 CREATE_SNAPSHOT 生成一个快照
 

CALL DBMS_WORKLOAD_REPOSITORY.CREATE_SNAPSHOT();

 

查看生成的快照 sys.WRM$_SNAPSHOT

抽取 awr 报告

  1.  通过awr包的awr_report_html函数

    SELECT * FROM TABLE (DBMS_WORKLOAD_REPOSITORY.AWR_REPORT_HTML(2,3));

    将查询结果复制到文本文件中,保存成 html 格式直接打开即可查看

  2. 也可以使用SYS.AWR_REPORT_HTML过程直接生成awr报告到指定目录下
SQL> SYS.AWR_REPORT_HTML(2,3,'/opt/dmdbms','awr02.HTML');
DMSQL 过程已成功完成
已用时间: 117.449(毫秒). 执行号:509.

awr快照的相关操作命令,跟Oracle几乎一致

 

 

报告的结构跟Oracle比较相似

第一部分: awr文件表头信息

这部分内容主要是针对数据库实例和硬件环境的一些基本信息。

第二部分:报告汇总信息

主要是内存组件方面的使用情况

第三部分:load profile

每秒redo日志产生大小,物理读,逻辑读,包括sql每秒的解析情况

第4部分内容: 命中率和等待事件top

提供了各项性能指标的命中率,TOP等待事件

第五部分:报告主体

这部分内容主要是一些更为详细的细化信息了,比如等待事件,IO信息,锁信息,undo相关信息,以及字典cache相关信息,TOP SQL等

达梦数据库 - 新一代大型通用关系型数据库 | 达梦在线服务平台







 


http://chatgpt.dhexx.cn/article/d9Ee74J8.shtml

相关文章

ORACLE调优深入理解AWR报告

什么是AWR? 一堆历史性能数据,放在sysaux表空间上,AWR和sysaux都是10g出现的,是oracle调优的关键特性。 默认快照间隔1小时;10g保存7天;11g保存8天; 可以通过DBMS_WORKLOAD_REPOSITORY.MODIFY_SNAPSHOT_SE…

AWR射频仿真基本操作(一)

这里只讲述一个基本的操作: 软件是AWR 14版本 新建工程 File–New project 然后File-project as 即另存为新建一个工程,自己取好名字。 设置基本参量 AWR可以直接进行仿真频率和单位之类的基本设置。 如果你只需要基本的S参数仿真,那么…

理论实践:循序渐进理解AWR细致入微分析性能报告

理论实践:循序渐进理解AWR细致入微分析性能报告 黄凯耀 (Kaya) ACOUG核心会员,高级技术专家 曾经工作于Oracle Real World Database Performance Group,一个隶属于Oracle公司总部数据库产品管理的核心团队。大学及研究生时期专注于Linux应用开…

AWR概念原理涉及表和包

一:AWR概念 Oracle10g以后,Oracle提供了一个性能检测的工具:AWR(Automatic Workload Repository 自动工作负载库)这个工具可以自动采集Oracle运行中的负载信息,并生成与性能相关的统计数据。我们可以根据这…

三种编码方式(费诺曼编码,霍夫曼编码,哈夫曼树编码)的简单解释和介绍

一. 费诺曼(Fano)编码是一种前缀编码,其基本原理是将出现频率较高的符号用短的编码表示,而出现频率较低的符号则用长的编码表示。通过这种方式进行编码,可以达到更好的压缩效果。 费诺曼编码的具体过程如下: 将要编码的符号按照…

霍夫曼编码及解码(简单实现)

霍夫曼树 霍夫曼树又称最优二叉树,是一种带权路径长度最短的二叉树。 所谓树的带权路径长度,就是树中所有的叶结点的权值乘上其到根结点的路径长度(若根结点为0层,叶结点到根结点的路径长度为叶结点的层数)。 树的路…

霍夫曼树和霍夫曼编码原理

一、哈夫曼树的概念和定义 什么是哈夫曼树? 让我们先举一个例子。 判定树: 在很多问题的处理过程中,需要进行大量的条件判断,这些判断结构的设计直接影响着程序的执行效率。例如,编制一个程序,将百分制转换…

学习笔记--霍夫曼树与霍夫曼编码解码

先摘一下百科的说法 “哈夫曼编码(Huffman Coding),又称霍夫曼编码,是一种编码方式,哈夫曼编码是可变字长编码(VLC)的一种。Huffman于1952年提出一种编码方法,该方法完全依据字符出现概率来构造异字头的平均长度最短的码字&#x…

霍夫曼编码的matlab实现

霍夫曼编码的原理已经有很优秀的介绍博客了,给出现频率高的灰度级分配更短的码字无非就是利用数学中逆序乘积和最小的原理,具体的原理介绍我就不再赘述了。这里给大家分享一下我个人早先实现的霍夫曼编码matlab程序。废话不多说,直接上代码&a…

霍夫曼树和霍夫曼编码以及霍夫曼编码的应用

文章目录 霍夫曼树介绍1.1霍夫曼树的定义1.2霍夫曼树的几个概念1.3构建霍夫曼树的过程1.4代码实现霍夫曼树 霍夫曼编码介绍什么是霍夫曼编码通信领域的应用 字符串压缩1.构造霍夫曼树2.生成赫夫曼树对应的赫夫曼编码表3.通过生成的赫夫曼编码表,返回一个赫夫曼编码 …

霍夫曼编码判断

霍夫曼编码判断 (算法学习) 霍夫曼编码一定是前缀编码,即,没有任何一个编码是另一个编码的前缀。 此外,还需要明白霍夫曼编码构建的树中只有度为0和2的结点,不存在度为1的结点。这与玩全二叉树是不一样的概念,玩全二…

霍夫曼编码和LZ编码

文章目录 一、霍夫曼编码1.概念及编码步骤2.霍夫曼编码例题分析 二、LZ编码1.概念及编码步骤2.LZ编码例题分析 一、霍夫曼编码 1.概念及编码步骤 霍夫曼编码是定长到变长编码,其概率高的符号映射成较短的二进制序列,概率低的符号映射成较长的二进制序列…

[基础知识] 霍夫曼编码

来源:Reducible内容整理:张志宇该视频详细讲解了霍夫曼编码提出的思路历程。 目录 故事背景思路历程 通信系统示意衡量信息量编码和熵的关系香农-冯诺编码霍夫曼的改进 故事背景 1951 年,麻省理工学院的一名研究生 David Huffman 在 Robert F…

数据结构【二】:霍夫曼编码

霍夫曼编码(Huffman Coding)是可变长编码(VLC)的一种。本质上使用变长编码表对源符号进行编码,通过评估源符号出现概率的方法进行分类,将出现几率较高的源字符使用较短的编码,出现几率较低的源字…

霍夫曼树——霍夫曼编码

霍夫曼编码 基本介绍 霍夫曼编码是一种编码方式,属于一种程序算法霍夫曼编码是霍夫曼树在通讯领域的经典应用之一霍夫曼编码广泛用于数据文件的压缩,压缩率通常在20% 到90%,通常数据的重复率越高,那么压缩率就越高霍夫曼编码是可…

【数据结构】图解霍夫曼编码,看了就能懂

今天来给大家普及一下霍夫曼编码(Huffman Coding),一种用于无损数据压缩的熵编码算法,由美国计算机科学家大卫霍夫曼在 1952 年提出——这么专业的解释,不用问,来自维基百科了。 说实话,很早之前…

霍夫曼编码原理以及代码实现

霍夫曼编码压缩能够实现对于自然语言文件空间大幅压缩。对于普通的文本文件字符,简单起见,如果字符为ASCII,则文本中的每个字符使用7bit来表示,如果文本中有大量的重复相同序列,使用ASCII编码来保存存储会造成大量的空…

霍夫曼编码(huffman coding) (java实现)

文章目录 一、浅谈赫夫曼编码二、获取赫夫曼编码1.获取字符出现的次数2.创建赫夫曼树3.指定编码 三、代码实现1.指定编码代码2.完整代码 总结 提示:以下是本篇文章正文内容,下面案例可供参考 一、浅谈赫夫曼编码 赫夫曼编码(Huffman Coding)&#xff0c…

霍夫曼树:霍夫曼编码(Huffman Tree:Huffman Coding)

一、简介 霍夫曼树常处理符号编写工作。根据整组数据中符号出现的频率高低,决定如何给符号编码。如果符号出现的频率越高,则给符号的码越短,相反符号的号码越长。 相关术语 路径:从书中一个节点到另一个节点之间的分支构成这两个…

霍夫曼编码

霍夫曼在1952年提出了霍夫曼编码,霍夫曼编码是一种无损的统计编码方法,利用信息符号概率分布特性来改编字长进行编码。适用于多元独立信源。霍夫曼编码对于出现概率大的信息符号用字长小的符号表示,对于出现概率小的信息用字长大的符号代替。…