oracle计数器函数,如何自定义Oracle计数器

一、添加自定义计数器的方法

要创建自定义查询,请执行以下操作:

1.        在安装路径的

Mercury LoadRunner/dat/monitors找到vmon.cfg文件,打开。

2.        在vmon.cfg文件的第三行中,CustomCounters=指出要创建的自定义计数器个数。

3.        在vmon.cfg文件中为新计数器新建一节,每节都有以下格式:

[Custom0]

Name=Five Hundred

Descrīption=This counter always returns 500.

Query=SELECT 500 FROM DUAL

IsRate=0

4.        在[Custom#]行,将计数器顺序中的下一个数字分配给新的自定义计数器。

注意:自定义计数器必须是以数字0开始的联系顺序。

5.        在Name行,输入新计数器的名称(可以输入中文)。

6.        在Descrīption行,输入对该计数器的描述或解释(可以输入中文)。

7.        在Query行,输入恰好返回

数据库一行的

SQL查询的文本,该行必须包含一列数值。

注意:自定义查询文本不能够超过512字符。

8.        在IsRate行,如果希望数据库将计数器报告为一个绝对值,请输入0;如果希望数

据库报告每单位时间计数器的更改,请输入1。

注意:自定义查询无法返回负值。

例:

[Custom0]

;Name must be unique

Name=库快存命中率

Descrīption=该计数器返回当前库快存命中率

Query=SELECT 100*((sum(pins-reloads))/sum(pins)) from v$librarycache

IsRate=0

3        配置文件示例对象

安装路径的Mercury LoadRunner/dat/monitors找到vmon.cfg文件:

V$ Monitor]

Counters=150

CustomCounters=12

;How many seconds for each data sample?

SamplingRate=10

[Custom0]

;Name must be unique

Name=库快存命中率

Descrīption=该计数器返回当前库快存命中率

Query=SELECT 100*((sum(pins-reloads))/sum(pins)) from v$librarycache

IsRate=0

[Custom1]

;Name must be unique

Name=高速缓存区命中率

Descrīption=oracle database shoot straight

Query=SELECT round(1-SUM(PHYSICAL_READS)/(SUM(DB_BLOCK_GETS) + SUM(CONSISTENT_GETS)), 4) * 100 FROM (SELECT CASE WHEN NAME='physical reads' THEN VALUE END PHYSICAL_READS,CASE WHEN NAME = 'db block gets' THEN VALUE END  DB_BLOCK_GETS,CASE WHEN NAME = 'consistent gets' THEN VALUE END  CONSISTENT_GETS FROM V$SYSSTAT WHERE Name IN ('physical reads','db block gets','consistent gets'))

IsRate=0

[Custom2]

;Name must be unique

Name=共享区库缓存区命中率

Descrīption=命中率应大于0.99

Query=Select round(sum(pins-reloads)/sum(pins) * 100, 2) from v$librarycache

IsRate=0

[Custom3]

;Name must be unique

Name=共享区字典缓存区命中率

Descrīption=命中率应大于0.85

Query=Select round(sum(gets-getmisses-usage-fixed)/sum(gets) * 100, 2) from v$rowcache

IsRate=0

[Custom4]

;Name must be unique

Name=检测回滚段的争用

Descrīption=应该小于1%

Query=select round(sum(waits)/sum(gets) * 100, 2) from v$rollstat

IsRate=0

[Custom5]

;Name must be unique

Name=检测回滚段收缩次数

Descrīption=应该小于1%

Query=select sum(shrinks) from v$rollstat, v$rollname where v$rollstat.usn = v$rollname.usn

IsRate=0

[Custom6]

;Name must be unique

Name=监控表空间的I/O读总数

Descrīption=监控表空间的I/O

Query=select sum(f.phyrds) pyr from v$filestat f, dba_data_files df where f.file# = df.file_id

IsRate=0

[Custom7]

;Name must be unique

Name=监控表空间的I/O块读总数

Descrīption=监控表空间的I/O

Query=select sum(f.phyblkrd) pbr from v$filestat f, dba_data_files df where f.file# = df.file_id

IsRate=0

[Custom8]

;Name must be unique

Name=监控表空间的I/O写总数

Descrīption=监控表空间的I/O

Query=select sum(f.phywrts) pyw from v$filestat f, dba_data_files df where f.file# = df.file_id

IsRate=0

.

.

.

.

.

(以上为12个自定义的计数器,以下为LR工具自带的计数器)

[0]

Name=CPU used by this session

Descrīption=This is the amount of CPU time (in 10s of milliseconds) used by a session between when a user call started and ended. Some user calls can complete within 10 milliseconds and as a result, the start and end user-call time can be the same. In this case, 0 milliseconds are added to the statistic. A similar problem can exist in the reporting by the operating system, especially on systems that suffer from many context switches.

IsRate=0

[1]

Name=CPU used when call started

Descrīption=The CPU time used when the call is started.

IsRate=0

.

.

.

.

二、常用自定义计数器列表

序号        监控名称        SQL算法        说明

1、   数据高速缓存区命中率        SELECT round(1-SUM(PHYSICAL_READS)/(SUM(DB_BLOCK_GETS) + SUM(CONSISTENT_GETS)), 4) * 100 FROM (SELECT CASE WHEN NAME='physical reads' THEN VALUE END PHYSICAL_READS,CASE WHEN NAME = 'db block gets' THEN VALUE END  DB_BLOCK_GETS,CASE WHEN NAME = 'consistent gets' THEN VALUE END  CONSISTENT_GETS FROM V$SYSSTAT WHERE Name IN ('physical reads','db block gets','consistent gets'))        (监控 SGA 的命中率)命中率应大于0.90最好

2、   库快存命中率        SELECT 100*((sum(pins-reloads))/sum(pins)) from v$librarycache        该计数器返回当前库快存命中率

3 、  共享区库缓存区命中率        Select round(sum(pins-reloads)/sum(pins) * 100, 2) from v$librarycache        (监控 SGA 中共享缓存区的命中率)命中率应大于0.99

4、   监控 SGA 中字典缓冲区的命中率        Select round(sum(gets-getmisses-usage-fixed)/sum(gets) * 100, 2) from v$rowcache        (共享区字典缓存区命中率)命中率应大于0.85

5、   检测回滚段的争用        select round(sum(waits)/sum(gets) * 100, 2) from v$rollstat        小于1%

6、   检测回滚段收缩次数        select sum(shrinks) from v$rollstat, v$rollname where v$rollstat.usn = v$rollname.usn

7、   监控表空间的 I/O读总数        select sum(f.phyrds) pyr from v$filestat f, dba_data_files df where f.file# = df.file_id        监控表空间的 I/O

8、    监控表空间的 I/O块读总数        select sum(f.phyblkrd) pbr from v$filestat f, dba_data_files df where f.file# = df.file_id        监控表空间的 I/O

9、    监控表空间的 I/O写总数        select sum(f.phywrts) pyw from v$filestat f, dba_data_files df where f.file# = df.file_id        监控表空间的 I/O

10、  监控表空间的 I/O块写总数        select sum(f.phyblkwrt) pbw  from v$filestat f, dba_data_files df where f.file# = df.file_id        监控表空间的 I/O

11、   监控 SGA 中重做

日志缓存区的命中率        SELECT Decode(immediate_gets+immediate_misses,0,0,immediate_misses/(immediate_gets+immediate_misses)*100) ratio2 FROM v$latch WHERE name IN ('redo copy')        应该小于1% 12、   监控内存和硬盘的排序比率        select round(sum(case when name='sorts (disk)' then value else 0 end) / sum(case when name='sorts (memory)' then value else 0 end)*100,2) from (SELECT  name, value FROM v$sysstatWHERE name IN ('sorts (memory)', 'sorts (disk)'))        最好使它小于 10%

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值