1、查看快照:
select SNAP_ID,dbid,SNAP_LEVEL,BEGIN_INTERVAL_TIME from dba_hist_snapshot order by SNAP_ID;
2、手工创建快照
begin
DBMS_WORKLOAD_REPOSITORY.CREATE_SNAPSHOT(flush_level IN VARCHAR2 DEFAULT 'TYPICAL');
end;
flush_level 参数
Flush level 可以是 'TYPICAL' 或 'ALL'
3、删除快照
您可以使用 DROP_SNAPSHOT_RANGE 存储过程删除个范围内的快照。要查看快照的 snap_id 和 数据库 ID 的列表,请查看 DBA_HIST_SNAPSHOT 视图。例如,您可以删除上例中 snap_id 小于 115 的快照:
DBMS_WORKLOAD_REPOSITORY.DROP_SNAPSHOT_RANGE(low_snap_id IN NUMBER,high_snap_id IN NUMBER dbid IN NUMBER DEFAULT NULL);
>exec dbms_workload_repository.drop_snapshot_range(dbid=>219724276,low_snap_id=>114,high_snap_id => 115);
PL/sql procedure successfully completed.
4、修改快照设置
TOPNsql 设置影响针对每个 sql 条件捕获的 Top sql 的数量(Elapsed Time、cpu Time、Parse Calls、sharable Memory 和 Version Count)。
此设置的值不受 statistics_level 和 flush_level 的影响,将会覆盖系统 AWR sql 收集的默认行为。可以讲次设置的值设置为 MAXIMUM 来捕获 shared sql area 中的全部 sql 集合,这么做(将此值设置为一个非常高的值)可能会导致一定的空间和性能问题,因为将会收集和存储更多的数据。要调整这些设置,请使用 MODIFY_SNAPSHOT_SETTING 存储过程。例如:
DBMS_WORKLOAD_REPOSITORY.MODIFY_SNAPSHOT_SETTINGS(
retention IN NUMBER DEFAULT NULL,
interval IN NUMBER DEFAULT NULL,
topnsql IN NUMBER DEFAULT NULL,
dbid IN NUMBER DEFAULT NULL);
>desc dba_hist_wr_control;
Name Null? Type
----------------------------------------------------------------- -------- --------------------------------------------
DBID NOT NULL NUMBER
SNAP_INTERVAL NOT NULL INTERVAL DAY(5) TO SECOND(1)
RETENTION NOT NULL INTERVAL DAY(5) TO SECOND(1)
TOPNsql VARCHAR2(10)