♣
题目部分
在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程序员面试笔试宝典》,作者:李华荣。