October 27 2014

ash

ash
active SESSION history
oracle 通过MMNL进程,把v$session里处于活动的session的每秒一次的拷贝到v$active_session_history里
ASH buffers 的最小值为1MB,最大值不超过30MB。内存中记录数据。期望值是记录一小时的内容 每个session分配2M sga内存去记录
然后宝贵的内存总是有限的 当一小时后或者ash buffers满了的时候 会把内存的信息记录到硬盘去 写到AWR负载库的ash相关的表中。ASH全部写出是不可接受的,
所以一般只写入收集的10%的数据量 而且使用direct-path insert完成,尽量减少日志的生成,从而最小化数据库性能影响

内存中的ASH 信息可以通过V$ACTIVE_SESSION_HISTORY查询,而写出到AWR负载库的ASH信息,可以通过AWR的基础表wrh$active_session_hist查询,
wrh$active_session_hist是一个分区表,Oracle会自动进行数据清理

一般来说,我们在监控数据库时,如果是当前正在发生的问题,我们可以通过v$session+v$sqlarea来找出性能最差的SQL语句。
如果在一个小时以内发生的我们可以通过生成ASH报告来找出SQL。如果是1小时以上或几天我们可以通过AWR报告来找出几小时,
几天以来最影响系统的SQL语句。ADDM报告基于AWR库,默认可以保存30天的ADDM报告。

总结:
我们如果想监控正在发生的问题可以用v$session+v$sql找到性能较差的sql
但是如果想找一小时以上的 就要到v$active_session_history(是内存中的ASH采集信息,理论上是1小时 )可以在这里找到性能较差的sql和使用i/o cpu的语句或对象
或者更久(当然也包含一小时以上)可以到ash记得到物理硬盘中 wrh$_active_session_history(VIEW:dba_hist_active_sess_history)中找到性能差的语句或对象
比如:
最近10分钟里最消耗IO资源的sql语句是哪些
select s.sql_text, ash.cn
from v$sql s,
(SELECT sql_id, count(*) as cn
FROM v$active_session_history
WHERE sample_time > sysdate – 10/24/60
and session_type <> ‘BACKGROUND’
and wait_class=’User I/O’
GROUP BY sql_id
ORDER BY count(*) desc) ash
where ash.sql_id=s.sql_id;

最近10分钟里最消耗CPU资源的sql语句是哪些
select s.sql_text, ash.cn
from v$sql s,
(SELECT sql_id, count(*) as cn
FROM v$active_session_history
WHERE sample_time > sysdate – 10/24/60
and session_type <> ‘BACKGROUND’
and SESSION_STATE=’ON CPU’
GROUP BY sql_id
ORDER BY count(*) desc) ash
where ash.sql_id=s.sql_id;

最近10分钟里IO等待最严重的对象是哪些
select CURRENT_OBJ#,count(*) as cn
FROM v$active_session_history
WHERE sample_time > sysdate – 10/24/60
and session_type <> ‘BACKGROUND’
and wait_class=’User I/O’
GROUP BY CURRENT_OBJ#
ORDER BY count(*) desc;

 

当然ash的也是可以生成性能报告的 使用 @$ORACLE_HOME/rdbms/admin/ashrpt.sql脚本生成,包括hmtl和text两种格式
也可以将内存中的ASM 数据dump 到外部文件,并转移到其他系统进行分析

 

在v$session_wait里会记录当前正在发生等待事件 v$session_wait_history会话最近的10次等待事件等待事件的查看呢可以参照V$EVENT_NAME

SELECT * FROM dict  WHERE table_name LIKE ‘%EVENT%’

SELECT * FROM V$EVENT_NAME



Copyright 2019. All rights reserved.

Posted 2014年10月27日 by ucjmh in category "oracle

Leave a Reply

Your email address will not be published. Required fields are marked *