空コミットとは、あるトランザクションでDMLの実行は無いがコミットする、ことを指す。一般的に通用する用語かどうかは謎だが、ひとまずこのエントリ内ではそういうもんとして話を進める。 Oracleでコレがどういう時に現れるかというと、たとえばFOR UPDATE句を多用するシステムが考えられる。トランザクションの終わりで必ずコミットさせるようにして、ロックの解放漏れを防ぐのが目的である。 何もコミットするものがなければREDOログは発生しないハズなので、空コミットの負荷はほとんど無いと考えられる。が、実際どんなもんなのかをやってみるのが、このエントリの趣旨である。 環境 DB CentOS-6.4-x86_64 Oracle Database Express Edition 11g Release 2 ツール Oracle SQL Developer 4.0(4.0.1.14.48) RLog