学习动态性能表数据库
第16篇--V$ROWCACHE 2007.6.12缓存
本视图显示数据字典缓存(也叫rowcache)的各项统计。每一条记录包含不一样类型的数据字典缓存数据统计,注意数据字典缓存有层次差异,所以一样的缓存名称可能不止一次出现。性能
V$ROWCACHE经常使用列学习
使用V$ROWCACHE数据大数据
1>.确认数据字典缓存是否拥有适当的大小。若是shared pool太小,那数据字典缓存就不足以拥有合适的大小以缓存请求信息。spa
2>.确认应用是否有效访问缓存。若是应用设计未能有效使用数据字典缓存(好比,大数据字典缓存并不有助于解决性能问题)。例如,DC_USERS缓存在过去某段时期内出现大量GETS,看起来像是数据库中建立了大量的不一样用户,而且应用记录下用户频繁登录和注销。经过检查logon比率以及系统用户数能够验证上述数据。同时解析比率也会很高,若是这是一个大型的OLTP系统的中间层,它可能在中间层更有效的管理个别账户,容许中间层以单用户登录成为应用全部者。经过保持活动链接来减小logon/logoff比率也一样有效。设计
3>.确认是否发生动态空间分配。DC_SEGMENTS, DC_USED_EXTENTS, 以及DC_FREE_EXTENTS大量的相似大小修改将指出存在大量动态空间分配。可行的解决方案包括指定下一个区大小或者使用本地管理表空间。若是发生空间分配的是临时的表空间,则能够为其指定真正的临时表空间(If the space allocation is occurring on the temp tablespace, then use a true temporary tablespace for the temp. )。get
4>.dc_sequences值的变化指出是否大量sequence号正在产生。requests
5>.搜集硬解析的证据。硬解析常表现为大量向DC_COLUMNS, DC_VIEWS 以及 DC_OBJECTS caches的gets。it
示例:
1.分组统计数据字典统计项
SELECT parameter,sum("COUNT"),sum(usage),sum(gets),sum(getmisses),
sum(scans),sum(scanmisses),sum(modifications),
sum(dlm_requests),sum(dlm_conflicts),sum(dlm_releases)
FROM V$ROWCACHE
GROUP BY parameter;
2.检查数据字典的命中率
select 1 - sum(getmisses) / sum(gets) "data dictionary hitratio" from v$rowcache;