Benjamin Zhang

目前就职于中科院计算机网络信息中心,主要兴趣集中在数据库,操作系统,中间件。

【oracle】oracle动态性能视图

06 Aug 2019 »

Oracle动态性能视图

V$和GV$的关系。

Oracle的运维过程中,经常会用到以V$开头的Oracle动态性能视图。但在监控的时候也会用到GV$。他们直接的关系可以看做:

1).V$的Oracle动态性能视图,针对当前数据库实例。

2).GV$的Oracle动态性能视图,针对数据库的全局。

SQL> select * from v$fixed_view_definition a where a.VIEW_NAME='V$RESOURCE_LIMIT';

VIEW_NAME
------------------------------
VIEW_DEFINITION
--------------------------------------------------------------------------------
V$RESOURCE_LIMIT
select RESOURCE_NAME, CURRENT_UTILIZATION, MAX_UTILIZATION,  INITIAL_ALLOCATION,
 LIMIT_VALUE from GV$RESOURCE_LIMIT where inst_id = USERENV('Instance')


SQL> select * from v$fixed_view_definition a where a.VIEW_NAME='GV$RESOURCE_LIMIT';

VIEW_NAME
------------------------------
VIEW_DEFINITION
--------------------------------------------------------------------------------
GV$RESOURCE_LIMIT
select inst_id, ksurlmnm, ksurlmcv, ksurlmmv,  LPAD(decode(bitand(ksurlmfg, 1),
0, to_char(ksurlmia), 'UNLIMITED'),10),  LPAD(decode(bitand(ksurlmfg, 2), 0, to_
char(ksurlmlv), 'UNLIMITED'),10) from x$ksurlmt

可以看到V$RESOURCE_LIMIT,直接从GV$RESOURCE_LIMIT派生出来,范围为当前数据库实例。

动态性能视图V$RESOURCE_LIMIT

V$RESOURCE_LIMIT用于展示Oracle数据库的系统资源,用于监控当前消耗的资源。可以用来纠正你的参数设置。保证数据库的正常运行。

这里就监控一项processes来熟练这个视图。sql语句如下:

select trim(limit_value-current_utilization) from gv$resource_limit
where resource_name='processes';

如上语句,是用来监控Oracle还有多少可用的连接数。

列表示的意思如下:

limit_value,是表示不受限制的可用资源。

CURRENT_UTILIZATION,表示当前已使用的资源数(esources, locks, or processes)。