1.v$mystat,v$sesstat是用来分别统计会话级别和自实例起动以来数据库各种统计信息的, V$sysstat是系统资源使用情况的统计分析,V$sesstat是所有库中所有session的分组统计信息,V$mystat统计的是当前session的信息,表结构和含义和v$sesstat相同。V$mystat中的统计信息是v$sesstat的一个子集。
Desc v$sysstat
Name
----------
Stattistic# :标识,用来识别name
Name
Classs 统计类别
Value
Stat_id 统计标识
Name中包括的统计信息: redo size(产生的redo log) user commits/user rollback(某种操作的次数) cpu userd by this session(做某种动作的累计时间)等。
Class是2代表的redo的信息,其中的class类别有点多,需要长时间使用来熟悉。
V$sesstat是所有库中所有session的分组统计信息。
包括statistic# sid value三列column,sid是session的识别ID,其余的列 和v$syssta中的column的意义相同。
V$mystat统计的是当前session的信息,表结构和含义和v$sesstat相同。V$mystat中的统计信息是v$sesstat的一个子集。
desc v$mystat;
名称 是否为空? 类型
----------------------------------------------------- -------- ------------------------------------
SID NUMBER
STATISTIC# NUMBER
VALUE NUMBER
SID表示会话编号,与v$session中SID相对应。
STATISTIC# 表示统计项
VALUE 表示统计项相关的值
v$mystat视图中只会有当前用户的会话信息,v$sesstat会有整个实例内所有会话信息。因此在v$sesstat中自然包括v&mystat的统计信息。
V$statname是联系v$mystat和统计name的视图,通过statistic#来对其他视图连接,而其他的表中同列名的column意义相同。
Name
-----------
Statistic#
Name
Class
Stat_id
v$statname视图中STATISTIC#与v$mystat,v$sesstat中STATISTIC#字段是相关联的。而NAME则是对应的英文信息,比如说要查某条DML语句所产生的redo信息。可以这样写:
select value from v$mystat t,v$statname t1 where t.STATISTIC# = t1.STATISTIC# and t1.NAME = 'redo size'
其它信息也是如此,只需将t1.name换成相对应的英文名称即可。