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 の使用法 » データベースの作成 » トランザクションと独立性レベルの使用 » ロックの仕組み

 

読み込みロックの早期解放

独立性レベル 3 では、読み込むすべてのローに読み込みロックをかけます。通常、処理が終了するまでロックは解放されません。実際、スケジュールを直列化可能とするためには、トランザクションがロックを早期に解放しないことが重要です。

SQL Anywhere は、トランザクションが完了するまで常に書き込みロックを保持します。これにより、別のトランザクションがそのローを修正したために最初のトランザクションをロールバックできなくなる状況を回避します。

読み込みロックはある特定の状況でのみ解放されます。独立性レベル 1 では、ローがカーソルの現在のローになった場合にのみ、トランザクションによって読み込みロックがかけられます。ただし独立性レベル 1 では、そのローが現在のローでなくなるとロックは解放されます。データベース・サーバは独立性レベル 1 で繰り返し可能読み出しを保証する必要がないため、この動作は問題ありません。

独立性レベルの詳細については、独立性レベルの選択を参照してください。