遅延更新と即時更新の違い

Anonim

遅延更新と即時更新

遅延更新と即時更新は、データベース管理システムのトランザクションログファイルDBMS)。トランザクション・ログ(ジャーナル・ログまたはREDOログとも呼ばれる)は、トランザクションID、トランザクションのタイム・スタンプ、データの古い値および新しい値を格納する物理ファイルです。これにより、DBMSは各トランザクションの前後にデータを追跡することができます。トランザクションがコミットされ、データベースが一貫性のある状態に戻されると、コミットされたトランザクションを除去するためにログが切り捨てられることがあります。

<! NO-UNDO / REDOとも呼ばれる遅延更新は、オペレーティングシステム、電源、メモリまたはマシンの障害に起因するトランザクション障害を回復/サポートするために使用される手法です。トランザクションが実行されると、トランザクションによってデータベースに加えられた更新や変更は、すぐには行われません。それらはログファイルに記録されます。ログファイルに記録されたデータの変更は、コミット時にデータベースに適用されます。このプロセスは「再実行」と呼ばれます。ロールバックでは、ログファイルに記録されたデータの変更は破棄されます。したがって、変更はデータベースに適用されません。トランザクションが失敗し、上記の理由によりコミットされない場合、ログファイルのレコードは破棄され、トランザクションが再開されます。クラッシュする前にトランザクションの変更がコミットされると、システムが再起動した後、ログファイルに記録された変更がデータベースに適用されます。

<!即時更新

UNDO / REDOとも呼ばれる即時更新は、オペレーティングシステム、電源、メモリまたはマシンの障害によって発生するトランザクション障害を回復/サポートするために使用される別の方法です。トランザクションが実行されると、トランザクションによって行われた更新または変更のいずれかがデータベースに直接書き込まれます。元の値と新しい値は、データベースに変更が加えられる前にログファイルにも記録されます。コミットすると、データベースに対するすべての変更が永続化され、ログファイル内のレコードは破棄されます。ロールバックでは、古い値はログファイルに保存されている古い値を使用してデータベースに復元されます。トランザクションによってデータベースに加えられたすべての変更は破棄され、このプロセスは「実行中でない」と呼ばれます。クラッシュ後にシステムが再始動すると、コミットされたトランザクションのすべてのデータベース変更が永続的になります。コミットされていないトランザクションの場合、ログファイルの値を使用して元の値が復元されます。

<! Deferred UpdateとImmediate Updateの違いは何ですか?Deferred UpdateとImmediate Updateは、システム障害後に回復する2つの方法ですが、各方法が使用するプロセスは異なります。異なる更新方法では、トランザクションによってデータに加えられた変更は、まずログファイルに記録され、コミット時にデータベースに適用されます。即時更新メソッドでは、トランザクションによって加えられた変更がデータベースに直接適用され、古い値と新しい値がログファイルに記録されます。これらのレコードは、ロールバック時に古い値を復元するために使用されます。異なる更新方法では、ログファイルのレコードはロールバック時に破棄され、データベースには適用されません。遅延更新方法の1つの欠点は、システム障害の場合に回復するのにかかる時間の増加である。一方、トランザクションがアクティブな間にI / O操作が頻繁に行われると、即時更新メソッドでは不利になります。