SQL Anywhere では、あるトランザクションの操作が、同時に実行される他のトランザクションの操作で認識される程度を制御できます。この制御には、「独立性レベル」というデータベースオプションを使用します。
また、対応するテーブルヒントを使用して、クエリ内の個々のテーブルの独立性レベルを制御することもできます。
SQL Anywhere が提供するインターフェイスを次に示します。
独立性レベル | 特性 |
---|---|
0 - コミットされない読み出し |
|
1 - コミットされた読み出し |
|
2 - 繰り返し可能読み出し |
|
3 - 直列化可能 |
|
snapshot 1 |
|
statement-snapshot1 |
|
readonly-statement-snapshot1 |
|
1 データベースで allow_snapshot_isolation が On に設定され、そのデータベースでスナップショットアイソレーションが有効である必要があります。
デフォルトの独立性レベルは 0 です。ただし、Open Client、jConnect、TDS の各接続におけるデフォルトの独立性レベルは 1 です。
ロックベースの独立性レベルは、一部またはすべての干渉を防ぎます。レベル 3 は最も高いレベルの独立性を提供します。2 以下のレベルでは、一貫性のレベルは低くなりますが、パフォーマンスは一般にレベル 3 より高くなります。デフォルトでは、レベルは 0 (コミットされない読み出し) に設定されています。
スナップショットアイソレーションのレベルは、読み込みと書き込み間の干渉を防ぎます。書き込みは相互に干渉する可能性があります。一貫性のない動作が多少生じる可能性がありますが、競合のパフォーマンスは独立性レベルを 0 に設定した場合と同じです。ローバージョンを保存して使用する必要があるため、競合以外のパフォーマンスは低下します。
どの独立性レベルにおいても、各トランザクションが完全に実行されるかまったく実行されないこと、および更新内容が失われないことが保証されます。
独立性レベルはトランザクション間にのみ当てはまります。同じトランザクション内の複数のカーソルが相互に干渉することはありません。
スナップショットアイソレーション
典型的な矛盾のケース
独立性レベルの設定
ODBC 実行可能アプリケーションでの独立性レベル
独立性レベルの参照
![]() |
DocCommentXchange で意見交換できます
|
Copyright © 2012, iAnywhere Solutions, Inc. - SQL Anywhere 12.0.1 |