Oracle その他

COMMIT しなくても INSERT, UPDATE, DELETE 実行後に REDO は出力されるのか?|REDO が生成されるタイミングはいつ

REDOログファイルってどのタイミングで出力されるんだっけ?

結論から言うと、REDO はコミット・未コミット関係なく生成される

なのでコミットをしなくても INSERT、UPDATE、DELETE 実行後は REDO は出力される

REDO のサイズは以下の SQL で確認が可能なので、REDO のサイズの動きを見ながら、何をトリガーに REDO が増えるのかを確認することができる。

select name,value from v$sysstat where name = 'redo size';

実際に INSERT、UPDATE、DELETE 実行後にどのように REDO が増えるのかを確認してみた。

実行例

SQL> create table test (c varchar2(20));

表が作成されました。

SQL> commit;

コミットが完了しました。

SQL> select name,value from v$sysstat where name = 'redo size';

NAME                                                                  VALUE
---------------------------------------------------------------- ----------
redo size                                                           5716000

SQL> insert into test values('aaa');

1行が作成されました。

SQL> select name,value from v$sysstat where name = 'redo size';

NAME                                                                  VALUE
---------------------------------------------------------------- ----------
redo size                                                           5725172

SQL> update test set c = 'bbb' where c = 'aaa';

1行が更新されました。

SQL> select name,value from v$sysstat where name = 'redo size';

NAME                                                                  VALUE
---------------------------------------------------------------- ----------
redo size                                                           5759072

SQL> delete from test where c = 'bbb';

1行が削除されました。

SQL> select name,value from v$sysstat where name = 'redo size';

NAME                                                                  VALUE
---------------------------------------------------------------- ----------
redo size                                                           5776704

SQL> commit;

コミットが完了しました。

SQL>  select name,value from v$sysstat where name = 'redo size';

NAME                                                                  VALUE
---------------------------------------------------------------- ----------
redo size                                                           5776844

REDO サイズが増加しているのが確認できるため、コミットに関係なく REDO が出力されているということがわかる。

この記事が役に立ったという方は
ボタンをポチッとしてくれたら喜びます

-Oracle, その他
-