【DB笔试面试156】在Oracle中,如何查询数据库系统或当前会话的Redo和Undo的生成量?

  • 2019 年 10 月 10 日
  • 筆記

题目部分

在Oracle中,如何查询数据库系统或当前会话的Redo和Undo的生成量?

答案部分

答案:反映Undo、Redo生成量的统计指标分别是:

l Redo:redo size

l Undo:undo change vector size

1、查询数据库系统Redo生成量,可以通过V$SYSSTAT视图查询,如下所示:

SELECT NAME,         VALUE  FROM   V$SYSSTAT  WHERE  NAME = 'redo size';  

2、查看当前会话的Redo生成量,可以通过V$MYSTAT或V$SESSTAT视图查询,如下所示:

CREATE OR REPLACE VIEW VW_REDO_SIZE_LHR AS  SELECT VALUE REDO_SIZE  FROM   V$MYSTAT   MY,         V$STATNAME  ST  WHERE  MY.STATISTIC# =ST.STATISTIC#  AND    ST.NAME = 'redo size';  

可以创建视图来同时查询当前会话Redo和Undo的生成量,如下所示:

CREATE OR REPLACE VIEW VW_REDO_UNDO_LHR AS  SELECT (SELECT NB.VALUE            FROM V$MYSTAT NB, V$STATNAME ST           WHERE NB.STATISTIC# = ST.STATISTIC#             AND ST.NAME = 'redo size') REDO,         (SELECT NB.VALUE            FROM V$MYSTAT NB, V$STATNAME ST           WHERE NB.STATISTIC# = ST.STATISTIC#             AND ST.NAME = 'undo change vector size') UNDO    FROM DUAL;  

& 说明:

有关Redo和Undo的查询实验更多相关内容可以参考我的BLOG:http://blog.itpub.net/26736162/viewspace-2125815/

本文选自《Oracle程序员面试笔试宝典》,作者:李华荣。