1 ash来源
ASH 每秒钟收集一次当前处于非空闲等待事件的、活动状态的、session的信息,并保存在V$ACTIVE_SESSION_HISTORY视图中,我们(应该以及必须)知道,动态性能视图其实上是ORACLE自行构造的一堆存在于SGA内存区的虚表,就是说,ASH的数据是保存在内存里的,实际上,ORACLE分配给ASH的空间并不是无限大(更何况ORACLE自身管理的内存空间也不是无限大),查看ASH可供使用的内存空间,可以通过如下:
SQL> select pool, name, bytes/1024/1024 Mb From v$sgastat where name like ¨%ASH %¨;
$ORACLE_HOME/rdbms/admin/ashrpt.sql
sql>@?/rdbms/admin/ashrpt.sql
相关视图
v$session (当前正在发生)v$session_wait (当前正在发生)v$session_wait_history (会话最近的10次等待事件)
_session_wait_history其缺省值为10.
v$active_session_history (内存中的ASH采集信息,理论为1小时)wrh$_active_session_history (写入AWR库中的ASH信息,理论为1小时以上)dba_hist_active_sess_history (根据wrh$_active_session_history生成的视图)2 awr(automatic workload repository)
--生成采样报告
sql>@?/rdbms/admin/awrrpt.sql
-- 查看采样间隔时间
sql>select * from dba_histr_wr_control;
调整采样时间
exec dbms_workload_repository.modify_snapshot_settings(interval=>30, retention=>5*24*60);
手动生成快照
exec DBMS_WORKLOAD_REPOSITORY.CREATE_SNAPSHOT ();
查看快照
select * from sys.wrh$_active_session_history
删除范围快照
exec WORKLOAD_REPOSITORY.DROP_SNAPSHOT_RANGE(low_snap_id => 22, high_snap_id => 32, dbid => 3310949047);