Oracle 性能监控(OPMon)

Oracle 性能监控(OPMon)
<script type="text/javascript"> </script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>

STATSPACK是很有用的性能调整工具,提供了性能调整的很多有用信息,如:综合负荷信息, 前5名等待事件,按逻辑读或物理读排序的SQL语句. 在使用过程中我发现它两次收集的时间间隔不能太短, 否则会在数据库上产生较大的负荷,并且在数据库主机负荷较高时, 收集和生成报告的时间都比较长. 为了能在更短的时间内取得有效数据,以便更快解决问题,我编写了这个工具, 能更快高效地提供与STATSPACK差不多的主要信息用于性能调整. 在输出的报告中包括了综合负荷,前5位等待事件,前5位LATCH,和按执行次数/逻辑读/物理读/CPU时间(9i以上)/等待时间(9i以上)降序排列的SQL HASH值. 整个报告显得简要明朗.

     我相信这个工具和STATSPACK具有同等作用. 有时因为Oracle的一些bug,我们可能会经常FLUSH内存中的东西, 这种情况下这个工具还是可以使用的,因为它可以在很短的时间内(如30秒或1分钟)找出这些信息.

1, 免费下载

 

2, 安装与使用

    OPMon是一个非常有用的小工具, 要使用你必须安装Oracle客户端或服务端软件, 如果你需要连接到远程数据,还需要配置Oracle的客户端, 使用"-U"选项指定要连接的用户名, 程序会提示输入口令, 请给这个用户CREATE SESSION和SELECT_CATALOG_ROLE角色权限.

C:/MYDUL/dulsrc>opmon -h
AnySQL OPMon for Oracle, Release 2.0.0
(c) Copyright Lou Fangxin 2004/2005, all rights reserved.

Usage: opmon -[option][value]
          -H    print help message
          -U    Oracle user name with select_catalog_role.
          -S    tns alias if remote database.
          -T    time interval (default 30 seconds, min 5, max 900)
          -C    number of top SQLs displayed (min 5, max 16384)
          -Q    run in quiet mode, write to file
          -D    directory of output file in quiet mode
    下面是一个连接的例子:
在SQL*Plus中连接数据库如下
SQL> conn test/test@test
Connected.
SQL> exit
则用opmon时在命令行输入,提示密码时输入密码然后回车:
C:/>opmon -uanysql -sprod
Password:******

3, 输出报告

    第一部份是综合信息.

AnySQL OPMon (Host:*****, SID:*****, CPU:4, Time:23:01:22 - 23:03:26, Elapse:124)
-Statistics (Per Second Value)------------------------------------------------------------------
     0 logon                20 open cursors        441 user commits          0 user rollback
  2399 user calls          264 CPU time              0 enqueue  waits      12K db block gets
  8605 consistent get     2009 physical reads     7113 DB blk Changes      271 physical write
     0 DBWR buf scan       115 free buf req          0 Dirty buf ins         0 free buf ins
     0 CR blk created     1918 Direct reads          2 Direct write          0 LOB phy read
     0 LOB phy write     1196K redo size          2672 redo blk write        0 table direct
   94K table scan         1590 table by rowid       14 Leaf  Split           2 Leaf 9/1 Split
    18 Total parse           0 Hard  parse        1820 execute count      490K bytes SQL*Net
    43 sort memory           0 sort disk
    第二部分是前5位等待事件.
-Waits----W/S---Time--Tim/S--Pct----Event-------------(Top 5 Wait Event)------------------------
     0      0    31K    254   28    CPU time
   67K    541    26K    215   23    db file scattered read
    80      0    24K    194   21    enqueue
   43K    346    16K    136   15    db file sequential read
   27K    223    12K    102   11    buffer busy waits
    第三部份是前5位LATCH
-Get/S--Mis/S--Slp/S-IGet/S-IMis/s-SGet/S--Latch------------------------------(Top Latch)-------
   18K    980     17      0      0    963  library cache
  5851    143      0      0      0    143  row cache objects
  7748     74      1      0      0     72  shared pool
  9475     35      1      0      0     34  library cache pin
  6248     26      0      0      0     26  library cache pin allocation
    第四部份是按执行次数/逻辑读/物理读等排序SQL信息
--Exec--Exe/S--Get/S--Get/E--Dsk/S--Dsk/E--Row/E---Sort--Cpu/S-Wait/S--HASH---(Order By Exec)---
   428     85   1942     22      7      0      1      0      0      0   265680535 [EXEC 1]
   375     75   1779     23      9      0      1      0      0      0  3580731310 [EXEC 2]
   369     73   1754     23      8      0      1      0      0      0  3128756925 [EXEC 3]
   301     60   1423     23      8      0      1      0      0      0   655541777 [EXEC 4]
   283     56   1355     23      5      0      1      0      0      0  3460144907 [EXEC 5]

--Exec--Exe/S--Get/S--Get/E--Dsk/S--Dsk/E--Row/E---Sort--Cpu/S-Wait/S--HASH---(Order By Gets)---
     1      0   8416    42K      0      0    61K      1      0      0  1860160018 [GETS 1]
     1      0   6958    34K      0      0    50K      0      0      0  3677268534 [GETS 2]
     1      0   4269    21K      0      0   8403      1      0      0  3314942495 [GETS 3]
     2      0   2728   6822      0      0      1      2      0      0  3657573887 [GETS 4]
     1      0   2168    10K      0      0   8403      0      0      0  2269343600 [GETS 5]
   428     85   1942     22      7      0      1      0      0      0   265680535 [GETS 6]
   375     75   1779     23      9      0      1      0      0      0  3580731310 [GETS 7]
   369     73   1754     23      8      0      1      0      0      0  3128756925 [GETS 8]

--Exec--Exe/S--Get/S--Get/E--Dsk/S--Dsk/E--Row/E---Sort--Cpu/S-Wait/S--HASH---(Order By Disk)---
   375     75   1779     23      9      0      1      0      0      0  3580731310 [DISK 1]
   301     60   1423     23      8      0      1      0      0      0   655541777 [DISK 2]
   369     73   1754     23      8      0      1      0      0      0  3128756925 [DISK 3]
    87     17    258     14      8      0      3      0      0      0  2504395356 [DISK 4]
   428     85   1942     22      7      0      1      0      0      0   265680535 [DISK 5]
    92     18    280     15      7      0      2      0      0      0   492167313 [DISK 6]
    63     12    203     16      6      0      3      0      0      0  1787408523 [DISK 7]
   157     31    125      3      6      0      0      0      0      0  2732246224 [DISK 8]
    在SQL信息中有很多列,这儿作一个简单的介绍:
Exec   : 在这段时间内的总执行次数
Exe/S  : 平均每秒执行次数
Get/S  : 平均每秒的逻辑读
Get/E  : 平均每次执行的逻辑读
Dsk/S  : 平均每秒的物理读
Dsk/E  : 平均每次执行的物理读
Row/E  : 每次执行返回的记录数
Sort   : 在这段时间内的排序次数
Cpu/S  : 平均每秒占用的CPU时间(毫秒)
Wait/S : 平均每秒占用的CPU时间(毫秒,为总时间减去CPU时间)
    所有这些值为一个时间段的差值. 你可以在这儿找到很多有用的信息, 我曾通过不同时间相同SQL的Row/E这一列的值不同发现了数据分布的问题,找出了某一个值上有很多无用记录从而解决问题.

4, 备注

    OPMon是一个轻量级的工具,不会对服务器的负荷造成过重影响.

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值