每天一个动态性能表:v$sesstat

按照OracleOnlineBook中的描述,v$sesstat存储session从login到logout的详细资源使用统计。

类似于v$sysstat,该视图存储下列类别的统计:
1.事件发生次数的统计,如用户提交数。
2.数据产生,存取或者操作的total列(如:redo size)
3.执行操作所花费的时间累积,例如session CPU占用(如果TIMED_STATISTICS值为true)
注意:如果初始参数STATISTICS_LEVEL被设置为TYPICAL或ALL,时间统计被数据库自动收集,如果STATISTICS_LEVEL被设置为BASIC,你必须设置TIMED_STATISTICS值为TRUE以打开收集功能。
如果你已设置了DB_CACHE_ADVICE,TIMED_STATISTICS或TIMED_OS_STATISTICS,或在初始参数文件或使用ALTER_SYSTEM或ALTER SESSION,那么你所设定的值的值将覆盖STATISTICS_LEVEL的值。

v$sysstat和v$sesstat差别如下:
1.v$sesstat只保存session数据,而v$sysstat则保存所有sessions的累积值。
2.v$sesstat只是暂存数据,session退出后数据即清空。v$sysstat则是累积的,只有当实例被shutdown才会清空。
3.v$sesstat不包括统计项名称,如果要获得统计项名称则必须与v$sysstat或v$statname连接查询获得。

v$sesstat可被用于找出如下类型session:
1.高资源占用
2.高平均资源占用比(登陆后资源使用率)
3.默认资源占用比(两快照之间)

在V$SESSTAT中使用统计
多数v$sesstat中的统计参考是v$sysstat描述的子集,包括session logical reads, CPU used by this session, db block changes, redo size, physical writes,
parse count (hard), parse count (total), sorts (memory), and sorts (disk).

V$SESSTAT常用列说明
1.SID:session唯一ID
2.STATISTIC#:资源唯一ID
3.VALUE:资源使用

示例1:下列找出当前session中最高的logical和Physical I/O比率.
下列SQL语句显示了所有连接到数据库的session逻辑、物理读比率(每秒)。logical和physical I/O比率是通过自登陆后的时间消耗计算得出。
对于sessions连接到数据库这种长周期操作而言也许不够精确,不过做个示例却足够了。
先获得session逻辑读和物理读统计项的STATISTIC#值:
SQL> select name,statistic#
  2  from v$statname
  3  where name in ('session logical reads','physical reads');

NAME                                                             STATISTIC#
---------------------------------------------------------------- ----------
session logical reads                                                    11
physical reads
通过上面获得的STATISTIC#值执行下列语句:
SQL> select ses.sid,
  2     decode(ses.action,null,'online','batch') "User",
  3     max(decode(sta.statistic#,11,sta.value,0))
  4     /greatest(3600*24*(sysdate-ses.logon_time),1) "Log IO/s",
  5     max(decode(sta.statistic#,72,sta.value,0))
  6     /greatest(3600*24*(sysdate-ses.logon_time),1) "Phy IO/s",
  7     60*24*(sysdate-ses.logon_time) "Minutes"
  8  from v$session ses,v$sesstat sta
  9  where ses.status = 'ACTIVE'
 10  and sta.sid = ses.sid
 11  and sta.statistic# in (11,72)
 12  group by ses.sid,ses.action,ses.logon_time
 13  order by
 14     sum(decode(sta.statistic#,72,100*sta.value,sta.value))
 15     /greatest(3600*24*(sysdate-ses.logon_time),1) desc;

       SID User     Log IO/s   Phy IO/s    Minutes
---------- ------ ---------- ---------- ----------
       131 online  .69013783 .041063635 1401.48333
       139 online 1.86693625 .008503806 1401.33333
       132 online .196208779 .004590374 1401.48333
       125 online  .23498442 .000967014 310.233333
        17 batch  .048505465 .000868293 1401.21667
         3 online .003246522 .000107028     1401.5
         8 online .011797025          0 1401.48333
         7 online .003258452 .000023784 1401.48333
       138 batch  .000142733          0 1401.21667
        13 batch  .000071358          0 1401.38333
        10 online          0          0 1401.38333

       SID User     Log IO/s   Phy IO/s    Minutes
---------- ------ ---------- ---------- ----------
       127 online          0          0     1401.5
         4 online          0          0 1401.48333
       128 online          0          0 1401.48333
       133 batch           0          0       4.85
         6 online          0          0 1401.48333
       130 online          0          0 1401.48333
       129 online          0          0 1401.48333
       126 online          0          0     1401.5
        14 batch           0          0 1396.38333
         1 online          0          0     1401.5
       135 online          0          0 1401.38333

       SID User     Log IO/s   Phy IO/s    Minutes
---------- ------ ---------- ---------- ----------
         5 online          0          0 1401.48333
       136 online          0          0 1401.38333
         2 online          0          0     1401.5
         9 online          0          0     1401.4

26 rows selected.

示例2:又例如通过v$sesstat和v$statname连接查询某个SID各项信息。
SQL> select a.*,b.name
  2  from v$sesstat a,v$statname b
  3  where a.sid = 139
  4  and a.statistic# = b.statistic#;

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29173997/viewspace-1167562/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/29173997/viewspace-1167562/

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值