« Oracle WareHouse Builder培训 | Blog首页 | Google拓展Gmail客户群 无"请柬"也能注册 »
Oracle10g的ASH及历史信息记录
作者:eygle | 【转载请注出处】|【云和恩墨 领先的zData数据库一体机 | zCloud PaaS云管平台 | SQM SQL审核平台 | ZDBM 数据库备份一体机】
链接:https://www.eygle.com/archives/2005/03/oracle10gaeasha.html
性能调整和问题诊断是任何数据库管理人员必须面临的最大挑战和必须完成的重要管理任务。基于管理上的简化和易用性的努力,Oracle推出了Autometic Database Diagnostic Monitor (ADDM) ,通过ADDM,Oracle试图使数据库的维护工作变得更简单更容易。链接:https://www.eygle.com/archives/2005/03/oracle10gaeasha.html
AWR是新的管理体系结构的中心元素,它为了发现问题和自我调整,为oracle内部服务组件提供了采集,处理,维护和访问性能统计数据.
AWR每60分钟就进行一次快照,所以最近的一次快照可能在一小时之前,这样AWR就没有足够的信息来进行当前的分析.典型的情况下,当前的分析需要最近的五到十分钟的详细信息.ASH(Active Session History)因此被引入用以保留最近的会话活动的历史信息.
因为记录会话的活动是非常昂贵的,ASH每秒采样V$session,记录会话等待的事件.不活动的会话不会被采样.这个采样工具是非常有效的,因为它直接访问oracle10g内部结构.
ASH设计为在内存中的滚动的,在需要的时候早期的信息是会被覆盖的.ASH可以通过v$active_session_history视图来访问.这个实例每个样本的每个活动会话有一行.
由于数据量巨大,把所有的ASH数据写到磁盘上是不可接受的。一般是在写到磁盘的时候过滤这个数据。这是通过MMON和MMNL自动完成的。
SQL> select * from v$sgastat where name like '%ASH%'; POOL NAME BYTES ------------ -------------------------- ---------- shared pool ASH buffers 6291456 |
注意,ASH buffers的大小按照以下算法分配:
Min(shared_pool_size*5%,2M*cpu_count)
SQL> select name,value,display_value from v$parameter 2 where name in ('shared_pool_size','cpu_count'); NAME VALUE DISPLAY_VALUE ------------------------------ -------------------- -------------------- cpu_count 4 4 shared_pool_size 125829120 120M |
根据这个算法,系统分配的ASH Buffers为6M.
这些历史信息记录在数据库中,可以通过v$session_wait_history进行查询:
显然ASH/ADDM是Oracle在管理上的又一巨大提高。
历史上的今天...
>> 2018-03-18文章:
>> 2008-03-18文章:
>> 2007-03-18文章:
SQL> desc v$session_wait_history Name Type Nullable Default Comments ---------- ------------ -------- ------- -------- SID NUMBER Y SEQ# NUMBER Y EVENT# NUMBER Y EVENT VARCHAR2(64) Y P1TEXT VARCHAR2(64) Y P1 NUMBER Y P2TEXT VARCHAR2(64) Y P2 NUMBER Y P3TEXT VARCHAR2(64) Y P3 NUMBER Y WAIT_TIME NUMBER Y WAIT_COUNT NUMBER Y |
显然ASH/ADDM是Oracle在管理上的又一巨大提高。
历史上的今天...
>> 2018-03-18文章:
>> 2008-03-18文章:
>> 2007-03-18文章:
By eygle on 2005-03-18 11:28 | Comments (0) | Internal | 210 |