DBMS_WORKLOAD_REPOSITORY 包
1、概述
AWR默认是关闭的需要受到开启,如 果 需 要 开 启 , 则 调 用
DBMS_WORKLOAD_REPOSITORY.AWR_SET_INTERVAL 过 程 设 置 快 照 的 间 隔 时 间 。 DBMS_WORKLOAD_REPOSITORY 包还负责 snapshot(快照)的管理。
DM 数据库在创建该包时,默认创建一个名为 SYSAUX 的表空间,对应的数据文件为
SYSAWR.DBF,该表空间用于存储该包生成快照的数据。如果该包被删除,那么 SYSAUX 表
空间也对应地被删除。
DM MPP 环境下不支持 DBMS_WORKLOAD_REPOSITORY 包。
2、相关方法
AWR_CLEAR_HISTORY(); 清理之前的所有 snapshot 记录。
AWR_SET_INTERVAL(); 设置生成 snapshot 的时间间隔。
AWR_REPORT_HTML ;生成 html 格式的报告
AWR_REPORT_TEXT;生成 text 格式的报告
CREATE_SNAPSHOT;创建一次快照 snapshot
DROP_SNAPSHOT_RANGE;删除 snapshot。
MODIFY_SNAPSHOT_SETTINGS;设置 snapshot 的属性值。
3、系统表
SYS.WRM$_WR_CONTROL
SYS.WRM$_SNAPSHOT
SYS.WRH$_RESOURCE_LIMIT
SYS.WRH$_SQL_HISTORY;当 INI 参数 ENABLE_MONITOR=1 时
SYS.WRH$_SQLTEXT;显示所有快照的缓冲区中的 SQL 语句信息。
SYS.WRH$_SQLTEXT_TMP;SYS.WRH$_SQLTEXT 的辅助表,显示所有快照中缓冲区中的 SQL 语句信息。
SYS.WRH$_SESSIONS;显示所有快照中会话的具体信息,如执行的 sql 语句、主库名、当前会话状态、用户名等。
SYS.WRH$_SESSION_WAIT_HISTORY;显示所有快照中会话等待事件的历史信息。
剩余的快照信息表名称如下:
1) SYS.WRH$_ARCH_QUEUE
2) SYS.WRH$_BUFFERPOOL
3) SYS.WRH$_CKPT_HISTORY
4) SYS.WRH$_DATAFILE
5) SYS.WRH$_DB_CACHE
6) SYS.WRH$_DEADLOCK_HISTORY
7) SYS.WRH$_DMSQL_EXEC_TIME
8) SYS.WRH$_DM_INI
9) SYS.WRH$_HASH_MERGE_USED_HISTORY
10) SYS.WRH$_LARGE_MEM_SQLS
11) SYS.WRH$_LOCK
12) SYS.WRH$_MAL_INFO
13) SYS.WRH$_MEM_POOL
14) SYS.WRH$_MTAB_USED_HISTORY
15) SYS.WRH$_PSEG_ITEMS
16) SYS.WRH$_RLOG
17) SYS.WRH$_SCP_CACHE
18) SYS.WRH$_SESSION_HISTORY
19) SYS.WRH$_SESSION_STAT
20) SYS.WRH$_SORT_HISTORY
21) SYS.WRH$_SQL_NODE_HISTORY
22) SYS.WRH$_SQL_PLAN_NODE
23) SYS.WRH$_SQL_STAT_HISTORY
24) SYS.WRH$_SYSSTAT
25) SYS.WRH$_SYSTEMINFO
26) SYS.WRH$_SYSTEM_EVENT
27) SYS.WRH$_TABLESPACE
28) SYS.WRH$_TASK_QUEUE
29) SYS.WRH$_TRACE_QUEUE
30) SYS.WRH$_VIRTUAL_MACHINE
31) SYS.WRH$_WAIT_HISTORY
4、创建、检测、删除
1)、创建或删除 DBMS_WORKLOAD_REPOSITORY 系统包。
void
SP_INIT_AWR_SYS(
CREATE_FLAG
int
)
参数CREATE_FLAG 为 1 时表示创建 DBMS_WORKLOAD_REPOSITORY 包;为 0 表示删除该系统包。
2)检测是否启用次包
SF_CHECK_AWR_SYS ()
SELECT SF_CHECK_AWR_SYS;
5、使用举例
用户在使用 DBMS_WORKLOAD_REPOSITORY 包之前,需要提前调用系统过程并设置间
隔时间:
SP_INIT_AWR_SYS(1);
下面语句设置间隔为 10 分钟,也可以是其他值:
CALL DBMS_WORKLOAD_REPOSITORY.AWR_SET_INTERVAL(10);
设置成功后,可以使用 CREATE_SNAPSHOT 手动创建快照,也可以等待设置的间隔时
间后系统自动创建快照,快照 id 从 1 开始递增:
手动创建快照:
DBMS_WORKLOAD_REPOSITORY.CREATE_SNAPSHOT();
查看创建的快照信息,包括快照 id:
SELECT * FROM SYS.WRM$_SNAPSHOT;
查看 snapshot 的 id 在 1~2 范围内的 AWR 分析报告的带 html 格式的内容。然后复
制到文本文件中,保存成 html 格式即可查看。
SELECT * FROM TABLE (DBMS_WORKLOAD_REPOSITORY.AWR_REPORT_HTML(1,2));
把 snapshot 的 id 在 1~2 范围内的 AWR 分析报告生成到 c 盘 awr1.html 文件。
SYS.AWR_REPORT_HTML(1,2,'C:\','AWR1.HTML');
通过 DMBS_WORKLOAD_REPOSITORY 包还可以对快照本身做增删改操作。
例 1 删除 id 在 22~32 之间的 snapshot。
CALL DBMS_WORKLOAD_REPOSITORY.DROP_SNAPSHOT_RANGE(22,32);
例 2 修改 snapshot 的间隔时间为 30 分钟、保留时间为 1 天。
CALL DBMS_WORKLOAD_REPOSITORY.MODIFY_SNAPSHOT_SETTINGS(1440,30);
查询设置后快照参数。
SELECT * FROM SYS.WRM$_WR_CONTROL;
例 3 创建一次 snapshot。
CALL DBMS_WORKLOAD_REPOSITORY.CREATE_SNAPSHOT();
例 4 清理全部 snapshot。
CALL DBMS_WORKLOAD_REPOSITORY.AWR_CLEAR_HISTORY();
例 5 设置 snapshot 的间隔为 10 分钟。
CALL DBMS_WORKLOAD_REPOSITORY.AWR_SET_INTERVAL(10);
6、查询系统字典视图
达梦数据库 - 新一代大型通用关系型数据库 | 达梦在线服务平台