ログ・バッファのサイズが適正であるかどうか
ログ・バッファのサイズが適正であるかどうかは、ログ・バッファに書き込むREDOエントリで
競合が起きているかどうかで判断します(リスト1)。
統計情報の「redobuffer allocation retries」の回数が多い状態であれば、
ログ・バッファに書き込み待ち(再実行)が発生していることになりますので、
この再実行を減らすためにlog_bufferのサイズを大きくします。
「redobuffer allocation retries」がほとんど0に近い状況が理想です。
select value
from v$sysstat
where name like 'redo buffer allocation retries';
log_bufferのサイズについて
log_bufferのサイズについては、V$SYSSTAT内の待機イベントである「logbuffer space」で
サーバ・プロセスがログ・バッファ内の空き領域を待機しているかどうか確認できます(リスト2)。
ここで待機が発生しているようであれば、log_bufferのサイズを変更することで解決することがあります。
select value
from V$SYSSTAT
where name like 'log buffer space';
ログ・スイッチの問題に関して
ログ・スイッチの問題に関しては、V$SESSION_EVENTの待機イベント「logfile switch completion」で確認できます
select
TOTAL_WAITS AS 待ち回数,
TOTAL_TIMEOUTS AS タイムアウト回数,
TIME_WAITED * 100 AS "待機時間合計 秒",
AVERAGE_WAIT * 100 AS "待機平均時間 秒",
MAX_WAIT * 100 AS "待機最大時間 秒"
from V$session_event
where event like 'log file switch completion';
待ち回数 タイムアウト回数 待機時間合計 秒 待機平均時間 秒 待機最大時間 秒
---------- ---------------- --------------- --------------- ---------------
1 0 13600 13647 13600
1 0 17300 17308 17300
2 0 28900 14443 21200
1 0 1000 1007 1000
1 0 18800 18816 18800
1 0 20500 20492 20500
6行が選択されました。
REDOログの一覧を表示
set lines 120
set pages 100
set term off
clear col
col GROUP# format 90
col STATUS format a7
col TYPE format a6
col MEMBER format a50
select
group#,
status,
type,
member
from
v$logfile
;
select group#,
thread#,
sequence#,
bytes/1024/1024 M_bytes,
members, status
from v$log order by 1,2;