不要小瞧v$mystat

来源:互联网 发布:99云呼软件 编辑:程序博客网 时间:2024/05/21 02:20

对于v$mystat,我们可能最常用的就是用这个视图来查询当前session的sid(seelct * from v$mystat where rownum=1),不过它的功能可不止简单提供一个sid,它实际上提供了当前session各项统计数据。

1. v$mystat提供了session各项指标值(指标: STATISTIC# ,值:value

SQL> select * from v$mystat;

       SID STATISTIC#      VALUE
---------- ---------- ----------
       136          0          1
       136          1          1
       136          2         57
       136          3          2
       136          4          0
       136          5          0
       136          6         26
       136          7        907
       136          8         10
       136          9        304
       136         10          0


2. 各个指标代表的含义:

SQL> select statistic#,NAME from v$statname;

STATISTIC#          NAME
---------- ----------------------------------------------------------------
         0                    logons cumulative
         1                    logons current
         2                   opened cursors cumulative
         3                   opened cursors current
         4                   user commits
         5                   user rollbacks
         6                   user calls
         7                   recursive calls
         8                   recursive cpu usage
         9                   session logical reads
        10                  session stored procedure space


3. 举个例子,看session产生的redo有多少

SELECT c.VALUE  FROM v$mystat c,v$statname b
     WHERE c.STATISTIC#=b.STATISTIC#  AND b.NAME='redo size' ;

     VALUE
-----------------
       624                    -------执行DML操作之前的redo量


SQL> set autotrace trace stat;
SQL> update a set object_id=99;

49792 rows updated.


Statistics
----------------------------------------------------------
        231  recursive calls
      56603  db block gets
      14531  consistent gets
          1  physical reads
   17910064  redo size   ---------执行这次操作产生的redo量
        669  bytes sent via SQL*Net to client
        561  bytes received via SQL*Net from client
          4  SQL*Net roundtrips to/from client
          6  sorts (memory)
          0  sorts (disk)
      49792  rows processed


SQL> set autotrace off;
SELECT c.VALUE FROM v$mystat c,v$statname b
        WHERE c.STATISTIC#=b.STATISTIC#  AND b.NAME='redo size' ;

     VALUE
--------------------
  17910688     -----执行DML操作之后的redo量


可以看到 17910688 - 624 = 17910064  跟统计数据完全吻合。同理session的各项指标都可以通过v$mystat来获取,所以千万别小看v$mystat呀,功能还是蛮强大滴。。。。。。。。

原创粉丝点击