Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (日本語) » SQL Anywhere サーバ - SQL の使用法 » データベースの作成 » トランザクションと独立性レベルの使用 » 独立性レベルと一貫性 » スナップショット・アイソレーション

 

更新の競合とスナップショット・アイソレーション

スナップショット・アイソレーションを使用する場合、トランザクションがローの古いバージョンを認識し、更新または削除しようとすると、更新の競合が発生することがあります。このような状況では、競合が検出されるとサーバでエラーが発生します。コミットされた変更の場合、これは更新または削除が試みられた時になります。コミットされていない変更の場合、更新または削除はブロックされ、変更がコミットされるときにサーバがエラーを返します。

readonly-statement-snapshot を使用すると、更新可能な文は、スナップショット・アイソレーションではなく実行し、常に最新バージョンのデータベースを認識するため、更新の競合は発生しません。そのため、readonly-statement-snapshot 独立性レベルには、スナップショット・アイソレーションの多くの利点があり、元々別の独立性レベルで実行するように設計されたアプリケーションを大きく変更する必要はありません。readonly-statement-snapshot 独立性レベルを使用するときは、次のようになります。

  • 読み込み専用文では、読み込みロックは取得されない。

  • 読み込み専用文は、データベースのコミットされた状態を常に認識する。