REDO生成量を確認する
DML(insert、update など)や DDL(create、drop など)で、
REDO ログの生成量を確認したい場合、動的パフォーマンスビューの
v$sysstat を参照することでおおよそのサイズがわかる。
ただし計測中に別セッションで SQL が実行された場合、
値がブレてしまうので、極力占有状態で実施すべきである。
ただでさえ、Oracle 内部で生成している REDO の影響を受けて、誤差があるので。
v$sysstat定義
REDO サイズは v$sysstat を参照する
SQL> desc v$sysstat 名前 NULL? 型 ---------- ------ ------------ STATISTIC# NUMBER NAME VARCHAR2(64) CLASS NUMBER VALUE NUMBER STAT_ID NUMBER
事前確認
SQL> select * from v$sysstat where name = 'redo size'; STATISTIC# NAME CLASS VALUE STAT_ID ---------- --------- ----- ---------- ---------- 146 redo size 2 1832889420 1236385760
SQL実行
SQL> drop table hoge; 表が削除されました。
事後確認
SQL> select * from v$sysstat where name = 'redo size'; STATISTIC# NAME CLASS VALUE STAT_ID ---------- --------- ----- ---------- ---------- 146 redo size 2 1832895656 1236385760
1832895656 – 1832889420 = 6236
この例では、6KB 程度の REDO ログが生成されたということになる。
なお、手動では精度が低いため、上記の流れをシェルやバッチに
組み込んで検証したほうがよい。