Oracle视图--v$sesstat2007.5.25按照OracleOnlineBook中的描述,v$sesstat存储session从login到logout的详细资源使用统计。类似于v$sysstat,该视图存储下列类别的统计:事件发生次数的统计,如用户提交数。数据产生,存取或者操作的total列(如:redosize)执行操作所花费的时间累积,例如sessionCPU占用(如果TIMED_STATISTICS值为true)注意:如果初始参数STATISTICS_LEVEL被设置为TYPICAL或ALL,时间统计被数据库自动收集如果STATISTICS_LEVEL被设置为BASIC,你必须设置TIMED_STATISTICS值为TRUE以打开收集功能。如果你已设置了DB_CACHE_ADVICE,TIMED_STATISTICS或TIMED_OS_STATISTICS,或在初始参数文件或使用ALTER_SYSTEM或ALTERSESSION,那么你所设定的值的值将覆盖STATISTICS_LEVEL的值。v$sysstat和v$sesstat差别如下:v$sesstat只保存session数据,而v$sysstat则保存所有sessions的累积值。v$sesstat只是暂存数据,session退出后数据即清空。v$sysstat则是累积的,只有当实例被shutdown才会清空。v$sesstat不包括统计项名称,如果要获得统计项名称则必须与v$sysstat或v$statname连接查询获得。v$sesstat可被用于找出如下类型session:高资源占用高平均资源占用比(登陆后资源使用率)默认资源占用比(两快照之间)在V$SESSTAT中使用统计多数v$sesstat中的统计参考是v$sysstat描述的子集,包括sessionlogicalreads,CPUusedbythissession,dbblockchanges,redosize,physicalwrites,parsecount(hard),parsecount(total),sorts(memory),andsorts(disk).V$SESSTAT常用列说明SID:session唯一IDSTATISTIC#:资源唯一IDVALUE:资源使用示例1:下列找出当前session中最高的logical和PhysicalI/O比率.下列SQL语句显示了所有连接到数据库的session逻辑、物理读比率(每秒)。logical和physicalI/O比率是通过自登陆后的时间消耗计算得出。对于sessions连接到数据库这种长周期操作而言也许不够精确,不过做个示例却足够了。先获得session逻辑读和物理读统计项的STATISTIC#值:SELECTname,statistic#FROMV$STATNAMEWHEREnameIN('sessionlogicalreads','physicalreads');NAMESTATISTIC#----------------------------------------sessionlogicalreads9physicalreads40通过上面获得的STATISTIC#值执行下列语句:SELECTses.sid,DECODE(ses.action,NULL,'online','batch')User,MAX(DECODE(sta.statistic#,9,sta.value,0))/greatest(3600*24*(sysdate-ses.logon_time),1)LogIO/s,MAX(DECODE(sta.statistic#,40,sta.value,0))/greatest(3600*24*(sysdate-ses.logon_time),1)PhyIO/s,60*24*(sysdate-ses.logon_time)MinutesFROMV$SESSIONses,V$SESSTATstaWHEREses.status='ACTIVE'ANDsta.sid=ses.sidANDsta.statistic#IN(9,40)GROUPBYses.sid,ses.action,ses.logon_timeORDERBYSUM(DECODE(sta.statistic#,40,100*sta.value,sta.value))/greatest(3600*24*(sysdate-ses.logon_time),1)DESC;SIDUserLogIO/sPhyIO/sMinutes----------------------------------1951batch291257.31470online6,16162.90730batch7,56843.21972153online1,48298.9102386batch7,62035.6351815batch7,50335.5261965online4,87942.9191668online4,31844.511142online95569.2351855batch57370.581971online1,13856.611323online3,26332.451479batch2,85735.13421online1,32246.8152405online25850.48示例2:又例如通过v$sesstat和v$statname连接查询某个SID各项信息。selecta.*,b.namefromv$sesstata,v$statnamebwherea.sid=10anda.statistic#=b.statistic#;