按照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#;
类似于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/