请问:oracle v$mystat中 statistic#=0是什么呢?

如题所述

v$mystat 是当前用户 session 的各种统计信息,sid就是session的id, STATISTIC# 是统计量的编号(用来唯一确定统计量的名称),value是统计量的值。

v$mystat 中的 STATISTIC# 序号对应的含义可以从 v$statname 查询出来,STATISTIC#相当于编号,NAME就是统计量的名称。
SQL> select * from v$statname where rownum<9;
STATISTIC# NAME CLASS STAT_ID
---------- ---------------------------- ---------- ----------
0 logons cumulative 1 2666645286
1 logons current 1 3080465522
2 opened cursors cumulative 1 85052502
3 opened cursors current 1 2301954928
4 user commits 1 582481098
5 user rollbacks 1 3671147913
6 user calls 1 2882015696
7 recursive calls 1 2656001462
8 recursive cpu usage 1 4009879262

从上面的查询可以看出STATISTIC# =0 的含义是自实例启动以来用户登录数据库次数的累计值
温馨提示:答案为网友推荐,仅供参考
第1个回答  2016-01-26
  v$mystat v$sesstat v$sysstat的区别
  v$mystat------->mystat---------->my session stat 当前会话统计
  v$sesstat------>sesstat----------->sessionstat 按会话进行分组统计
  v$sysstat------->sysstat----------->systemstat 当系统的整体统计

  

  v$mystat是指自己session的stat
  v$sesstat是子系统所有session的stat

  

  statistic#这个字段是和statname表来关联的
  sid字段是session identifier
  如果没有v$mystat的权限按照下面方法申请

  

  查询v$mystat说明没有查询权限
  SQL> conn scott/tiger@orcl
  已连接。
  SQL> select sid from v$mystat ;
  select sid from v$mystat
  *
  第 1 行出现错误:
  ORA-00942: 表或视图不存在
  SQL> conn sys / as sysdba
  输入口令:
  已连接。
  SQL> grant select on v$mystat to scott;
  grant select on v$mystat to scott
  *
  第 1 行出现错误:
  ORA-02030: 只能从固定的表/视图查询
  对于Oracle的这种视图不能直接被授权(这里的v$mystat是同义词名)
  SQL> grant select on v_$mystat to scott;
  授权成功。
  已连接。
  SQL> grant select on v_$mystat to scott;
  授权成功。
  SQL> conn scott/tiger@orcl
  已连接。
  SQL> desc v$mystat;
  名称 是否为空? 类型
  ------------------------------------------------- -------------------------
  SID NUMBER
  STATISTIC# NUMBER
  VALUE NUMBER
  SQL> select sid from v$mystat where rownum=1;
  SID
  ----------
  146
  SQL>
  SQL> revoke select on v_$mystatfrom scott;
  撤销成功。

  ==============================================================================

  动态性能视图v$mystat,v$sesstat,v$statname学习
  -动态性能视图v$mystat,v$sesstat,v$statname学习
  为了学习如何得sql产生的redo信息,在网上查询到结果得出需对v$mystat,v$sesstat,v$statname视图进行操作,现在心得写出如下:

  1.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的统计信息。

  2.一般情况下v$mystat,v$sesstat会与v$statname一起配合使用。
  SQL> desc v$statname;
  Name Type Nullable Default Comments
  ---------- ------------ -------- ------- --------
  STATISTIC# NUMBER Y
  NAME VARCHAR2(64) Y
  CLASS NUMBER Y

  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换成相对应的英文名称即可。