之前我们整理了DM DCP 的相关内容:
达梦 DM8 DCP 备考笔记(1) — 理论考试 说明
https://www.cndba.cn/dave/article/108708
达梦 DM8 DCP 备考笔记(2) — 分区表操作
https://www.cndba.cn/dave/article/108710
达梦 DM8 DCP 备考笔记(3) — 外部表操作
https://www.cndba.cn/dave/article/108711
达梦 DM8 DCP 备考笔记(4) — 同义词操作
https://www.cndba.cn/dave/article/108712
达梦 DM8 DCP 备考笔记(5) — 物化视图操作
https://www.cndba.cn/dave/article/108713
达梦 DM8 DCP 备考笔记(6) — 序列操作
https://www.cndba.cn/dave/article/108714
达梦 DM8 DCP 备考笔记(7) — 审计操作
https://www.cndba.cn/dave/article/108715
达梦 DM8 DCP 备考笔记(8) — 快速加载(Fast Loader)操作
https://www.cndba.cn/dave/article/108716
达梦 DM8 DCP 备考笔记(9) — 索引操作
https://www.cndba.cn/dave/article/108717
本篇我们来看下达梦数据库中的索引操作。 相关理论说明参考《DM8系统包使用手册》的 <第23章:DBMS_WORKLOAD_REPOSITORY包>。
1 快照概述
DM 快照功能是基于数据库实现的,每个快照是基于数据库的只读镜像。
为了方便管理自动工作集负载信息库 AWR(Automatic Workload Repository)的信息,系统为其所有重要统计信息和负载信息执行一次快照,并将这些快照存储在 AWR 中。
AWR 功能默认是关闭的,如果需要开启,则调用DBMS_WORKLOAD_REPOSITORY.AWR_SET_INTERVAL 过程设置快照的间隔时间。DBMS_WORKLOAD_REPOSITORY 包还负责 snapshot(快照)的管理。
DM 数据库在创建该包时,默认创建一个名为 SYSAUX 的表空间,对应的数据文件为SYSAWR.DBF,该表空间用于存储该包生成快照的数据。如果该包被删除,那么 SYSAUX 表空间也对应地被删除。
1.1 AWR 相关的方法
- 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 的属性值。
1.2 创建、检测、删除语句
1) SP_INIT_AWR_SYS(CREATE_FLAG int):创建或删除 DBMS_WORKLOAD_REPOSITORY 系统包。
参数CREATE_FLAG:为 1 时表示创建 DBMS_WORKLOAD_REPOSITORY 包;为 0 表示删除该系统包。
2) SF_CHECK_AWR_SYS():系统的 DBMS_WORKLOAD_REPOSITORY 系统包启用状态检测。
返回值:0:未启用;1:已启用
2 操作示例
查看AWR系统包的状态,返回为0,表示未启用:
[dave@www.cndba.cn data]$ disql sysdba/dameng123
Server[LOCALHOST:5236]:mode is normal, state is open
login used time : 1.569(ms)
disql V8
SQL> select SF_CHECK_AWR_SYS();
LINEID SF_CHECK_AWR_SYS()
---------- ------------------
1 0
used time: 1.850(ms). Execute id is 58600.
SQL>
创建DBMS_WORKLOAD_REPOSITORY包:
SQL> call sp_init_awr_sys(1);
DMSQL executed successfully
used time: 950.771(ms). Execute id is 58601.
SQL>
设置快照生成间隔时间,默认是60分钟,这里设置成10分钟,另外在第一次初始化时也需要手工设置一下,否则手工创建快照不会生效:
SQL> call dbms_workload_repository.awr_set_interval(10);
手工创建快照:
SQL> call dbms_workload_repository.create_snapshot();
查看快照信息:
SQL> SELECT snap_id,startup_time FROM SYS.WRM$_SNAPSHOT;
生成AWR报告:有2种方法,一个是函数,一个是存储过程:
1) 调用函数:返回的内容是网页的源码,需要自己将内容复制到html文件中,比较麻烦:
select * from table(dbms_workload_repository.awr_report_html(1,2));
2)调用存储过程,直接生成html页面,推荐使用这种:
SQL> sys.awr_report_html(1,2,’/dm’,’awr1_2.html’);
查看AWR属性值
SQL> select * from sys.wrm$_wr_control;
删除快照
SQL>SELECT snap_id,startup_time FROM SYS.WRM$_SNAPSHOT;
SQL> call dbms_workload_repository.drop_snapshot_range(4,5);
SQL> SELECT snap_id,startup_time FROM SYS.WRM$_SNAPSHOT;
修改 snapshot 的间隔时间为 30 分钟、保留时间为 1 天。
SQL> call dbms_workload_repository.modify_snapshot_settings(1440,30);
SQL> select * from sys.wrm$_wr_control;
清理全部 snapshot。
SQL> call dbms_workload_repository.awr_clear_history();
SQL> SELECT snap_id,startup_time FROM SYS.WRM$_SNAPSHOT;
设置 snapshot 的间隔为 10 分钟。
SQL> call dbms_workload_repository.awr_set_interval(10);
SQL> select * from sys.wrm$_wr_control;
版权声明:本文为博主原创文章,未经博主允许不得转载。