データベースは多くの場合、変更前イメージ ジャーナル (トランザクション前の状態) または変更後イメージ ジャーナル (トランザクション完了時の状態) のいずれかを保持します。変更前イメージを保持する場合は、ロールバック時に復元する必要があります。 . 残像を保持している場合、コミット時にデータを置き換える必要があります。
Oracle には、ジャーナル スペースとロールバック スペースの両方があります。トランザクション ジャーナルは、後で DB ライターによって書き込まれるブロックを蓄積します。これらは非同期であるため、トランザクションに影響を与える DB ライター関連はほとんどありません (キューがいっぱいになると、待機する必要がある場合があります)。
クエリのみのトランザクションの場合でも、Oracle のロールバック領域に多少のトランザクション記録保持があることは間違いありません。ロールバックには、実際にロールバックするものがないと判断する前に、Oracle 側で何らかの作業が必要になると思います。そして、これはあなたのトランザクションと同期していると思います。ロールバックが完了するまで、ロックを実際に解放することはできません。[はい、トランザクションで何も使用していないことは知っていますが、ロックの問題が原因で、ロールバックを完全に解放する必要があり、その後すべてのロックを解放して、ロールバックを終了する必要があると思います。]
一方、コミットは多かれ少なかれ予想される結果であり、ロールバック領域を破棄する方がわずかに速いのではないかと思います。トランザクション エントリを作成しなかったため、db ライターが起動して、何もする必要がないことを確認して発見することさえありません。
また、コミットの方が速いかもしれませんが、違いは小さいと思います。非常に小さいため、並べて比較しても測定できない場合があります。