トランザクション処理の設計は重要である。RDBMSの負荷の面から見ると,トランザクションがアクティブ状態(トランザクションがスタートしてコミットもロールバックもしていない状態)である時間はできるだけ短い方が望ましい。RDBMSは,トランザクションがアクティブ状態だといくつものリソースを獲得して維持する必要があるからだ。具体的には,ロックの情報やUNDOログ(ロールバックされた時にデータベースを元の状態に戻すために使用するデータ),REDOログ(コミットされた後何らかの要因で損傷が発生したデータを復元するために使用するデータ),などがある。長時間終了しないトランザクションがあると,これらのリソースをその間獲得し続けなければならず,ほかの処理やトランザクションに悪影響を与えることがある。 一番分かりやすい例としては,RDBMSのシャットダウンがある。シャットダウンする際にアクティブなトランザク
![[データベース設計編]長時間終了しないトランザクションを使ってはいけない | 日経 xTECH(クロステック)](https://cdn-ak-scissors.b.st-hatena.com/image/square/bed39b5962a5d552c95b6d796db8f55e72d32943/height=288;version=1;width=512/https%3A%2F%2Fxtech.nikkei.com%2Fimages%2Fn%2Fxtech%2F2020%2Fogp_nikkeixtech_hexagon.jpg%3F20220512)