スナップショットの分離とは何ですか?

Snapshot分離は、トランザクションで作成されたすべての読み取りを保証するトランザクション処理およびデータベースのプロパティです。同じデータベース「Snapshot」を参照してください。これは、更新が他の同時更新と競合しない場合、トランザクションがリクエストの処理を正常に処理することにコミットすることを意味します。スナップショット分離は、並行性で一般的に発生する問題を回避する分離レベルを提供するマルチバージョンの並行性のコントロールアルゴリズムです。この分離は、いくつかの異なる構造化クエリ言語(SQL)サーバーによって実装されており、最小限のシリアル化異常で動作します。ただし、スナップショットの分離は、サーバーの完全なシリアル化可能性を保証しません。

多くの主要なデータ管理システムには、シリアル化できず、スナップショット分離なしでシリアル化の異常に遭遇するデフォルトの分離レベルが含まれています。これにより、大規模なシステムが毎日多数の分離エラーを発生させる可能性があります。CHは、特にデータの倉庫アプリケーションに見られるデータの破損につながる可能性があります。この状態でシステムが動作する理由は、より低い分離レベルで実行されるアプリケーションが、深刻なエラーが発生しないと効率を改善する可能性があるためです。システムにスナップショット分離を含めると、これらの異常が減少し、操作時間と考慮されるエラーの量をとると、効率がさらに向上します。

一部のデータベースは、完全なシリアル化性とは対照的に、スナップショット分離を提供しますが、このタイプの分離を利用してデータベース内で発生する可能性のある異常もあります。一貫性のインターリーブを維持するトランザクション、または交互の層に配置されるため、これらの異常はデータの一貫性違反につながる可能性があります。問題を解決し、これらのような異常を防ぐ1つの方法は、紹介でアプリケーションを操作することです人工ロックと競合する更新の後に、すべてのトランザクション間の競合の分析が続きました。ただし、これらの異常を解決する別の方法は、データベースシステムの並行制御のアルゴリズムを変更して、実行時にスナップショット分離の異常の自動検出と予防を行うことです。これは、重要または任意のアプリケーションに対して行うことができますが、シリアル化可能な分離を提供します。

新しいSQLサーバーは、特定のアプリケーションでの並行性の強化のために、新しいレベルの分離と新しいレベルのスナップショット分離を導入することができました。 SQL Serverの初期バージョンがロックを並行性の基礎として使用した場合、スナップショット分離は、パフォーマンスの改善を目的とした行バージョンの強化に依存します。このパフォーマンスは、それらを避けて読み取りまたは書き込みブロックでシナリオに遭遇すると改善されます。

他の言語

この記事は参考になりましたか? フィードバックをお寄せいただきありがとうございます フィードバックをお寄せいただきありがとうございます

どのように我々は助けることができます? どのように我々は助けることができます?