awr报告简介
1、达梦的awr功能默认是关闭的
2、管理awr报告全部使用 DBMS_WORKLOAD_REPOSITORY包来管理,包括开启,设置等等。
3、用户在使用 DBMS_WORKLOAD_REPOSITORY 包之前,需要提前调用系统过程 SP_INIT_AWR_SYS(1)创建包。
4、DM 数据库在创建上述包时,默认创建一个名为 SYSAUX 的表空间,对应的数据文件为 SYSAWR.DBF,该表空间用于存储该包生成快照的数据。如果该包被删除,那么 SYSAUX 表空间也对应地被删除。
启动awr报告
启动awr报告功能,即是创建DBMS_WORKLOAD_REPOSITORY包。
1、创建或删除 DBMS_WORKLOAD_REPOSITORY 系统包:
SP_INIT_AWR_SYS()为 1 时表示创建,为 0 表示删除该系统包
示例:
SP_INIT_AWR_SYS(1)
2、系统包启用状态检测:
SF_CHECK_AWR_SYS () 返回值0:未启用;1:已启用
示例:
SELECT SF_CHECK_AWR_SYS ();
管理awr报告
快照的管理有两部分,一部分是DBMS_WORKLOAD_REPOSITORY 包,一部分是动态表
DBMS_WORKLOAD_REPOSITORY 包功能:
功能 | 方法名 |
---|---|
清理之前的所有 snapshot 记录 | AWR_CLEAR_HISTORY(); |
设置生成 snapshot 的时间间隔 | AWR_SET_INTERVAL(); |
生成 HTML 格式的报告 | AWR_REPORT_HTML |
生成 TEXT 格式的报告 | AWR_REPORT_TEXT |
删除指定快照 ID 范围内的快照 | DROP_SNAPSHOT_RANGE |
动态表:
功能 | 表名 |
---|---|
记录快照的相关控制信息 | SYS.WRM$_WR_CONTROL |
记录快照的相关信息 | SYS.WRM$_SNAPSHOT |
显示所有快照中表、用户的空间限制信息 | SYS.WRH$_RESOURCE_LIMIT |
显示所有快照中执行 sql 的历史记录信息 | SYS.WRH$_SQL_HISTORY |
显示所有快照的缓冲区中的 SQL 语句信息 | SYS.WRH$_SQLTEXT |
SYS.WRH$_SQLTEXT 的辅助表 | SYS.WRH$_SQLTEXT_TMP |
显示所有快照中会话的具体信息 | SYS.WRH$_SESSIONS |
显示所有快照中会话等待事件的历史信息 | SYS.WRH$_SESSION_WAIT_HISTORY |
显示当前活动会话的等待信息 | SYS.WRH$_ACTIVE_SESSION_HISTORY |
创建时间间隔:
DBMS_WORKLOAD_REPOSITORY包中的AWR_SET_INTERVAL();
单位分钟,最小为10,默认为60,参数为 0 时,关闭快照
示例:
CALL DBMS_WORKLOAD_REPOSITORY.AWR_SET_INTERVAL(10);
手动创建快照
DBMS_WORKLOAD_REPOSITORY.CREATE_SNAPSHOT();
查看创建的快照信息,包括快照 id:
SELECT * FROM SYS.WRM$_SNAPSHOT;
生成快照html
示例:把 snapshot 的 id 在 1~2 范围内的 AWR 分析报告生成到 /home/dmdba 盘 awr1.html 文件
SYS.AWR_REPORT_HTML(1,2,'/home/dmdba','AWR1.HTML');
删除快照
示例:删除 id 在 22~32 之间的 snapshot,并立即释放相应分区表空间
CALL DBMS_WORKLOAD_REPOSITORY.DROP_SNAPSHOT_RANGE(22,32,NULL,TRUE);
示例:删除“2023-11-17 17:01:29.488000”时间点之前创建的所有 snapshot,并立即释放相应分区表空间。
CALL DBMS_WORKLOAD_REPOSITORY.DROP_SNAPSHOT_BY_TIME('2023-11-17 17:01:29.488000', TRUE);
示例:清理全部 snapshot。
CALL DBMS_WORKLOAD_REPOSITORY.AWR_CLEAR_HISTORY();
修改快照生成间隔
示例:修改 snapshot 的间隔时间为 30 分钟、保留时间为 1 天
CALL DBMS_WORKLOAD_REPOSITORY.MODIFY_SNAPSHOT_SETTINGS(1440,30);
awr报告的组成
HEAD INFO
AWR 报告的头部信息,包含三个部分
数据库基本信息(DB INFO),显示数据库的基本信息
实例运行环境基本信息(HOST INFO),显示实例运行环境
快照统计基本信息(SNAP INFO),显示快照统计的基本信息
本部分是数据库的基本信息,用于判断导出的快照是否是自己需要的快照;
Report Summary
AWR 报告的摘要,本部分是查看数据库整体的的负载信息,包含以下几部分:
内存池信息报告(Memory Pool),记录 dm memory pool 的使用情况,与V$SYSSTAT记录相同
缓存池信息报告(Buffer Pool),显示 buffer pool 的信息,与V$BUFFERPOOL记录相同
两次快照之间的数据库负载概况(Load Profile),主要记录两次快照之间的数据库负载概况
内存命中率及数据库实例操作的效率报告(Instance Efficiency Percentages),记录统计内存命中率及数据库实例操作的效率
系统中最严重的 5 个等待(Top 5 Timed Foreground Events)
常用的参数:
DB Time不包括数据库后台进程消耗的时间。如果DB Time远远小于Elapsed时间,说明数据库比较空闲。
内存命中率通常指的是在内存中找到所需数据的比例,较高的命中率意味着数据和代码在内存中被高效地访问,减少了物理读取,提升了性能。如果过小可以通过扩大内存分配,优化sql查询,使用合适的索引和避免不必要的全表扫描,使用分区表来提高大表的查询效率。
等待事件:
等待事件可以通过语句SELECT top 20 * FROM V$SYSTEM_EVENT ORDER BY TOTAL_WAITS DESC;
来查看;
也可以使用性能监视工具来查看;
常见的有dbfile read wait读数据页等待,network idle wait网络处理等待,buffer busy wait,buffer 并发使用冲突等,可以在DM8系统管理员手册中的附录2找到他们的详细说明
Main Report
AWR 报告的主体部分,包含:
等待事件统计信息等待事件统计名称(Wait Events Statistics)
SQL 语句相关统计(SQL Statistics)
实例活动统计信息(Instance Activity Statistics)
IO 信息(IO Stats)
缓存区统计信息(Buffer Pool Statistics)
等待事件统计信息(Wait Statistics)
撤销的统计信息(Undo Statistics)
锁统计信息(Lock Statistics)
死锁统计信息(Dead Lock Statistics)
隔离区活动统计信息(Seg Activity Statistics )
数据库缓存信息(Dictionary Cache Statistics)
库缓存统计信息(Library Cache Statistics)
内存池的统计信息(Memory Statistics)
分类统计信息(Sort Statistics)
空间限制信息(Resource Limit Statistics)
邮箱视图信息(Mail Statistics)
dm.ini 参数信息(dm.ini Parameters)
顶级等待事件中的高负载 SQL 语句(Top SQL with Top Events)。
更多关于达梦数据库的说明与文档请访问社区地址:https://eco.dameng.com