「"ロックおよびデッドロック"」セクションの「"遅い、またはハングしたように見えるアプリケーション"」 サブセクションにある「"次のキー・ロックによってロック待機またはデッドロックは起こりません"」の 下の説明を次のように変更します。
次のキー・ロック は、すべての INSERT および DELETE ステートメントの次のキー、 および SELECT ステートメントの結果セットを超える、次に大きなキー値を自動的にロックすることによって、 反復可能読み取り (RR) 分離レベルを保証します。 索引のキー部分を更新する UPDATE ステートメントの場合、元の索引キーは削除され、新しいキー値が挿入されます。 次のキー・ロックは、キー挿入とキー削除の両方で行われます。 これは、ANSI および SQL92 標準 RR を保証するために必要で、DB2 デフォルトです。
アプリケーションのスナップショット情報を調べてください。 次のキー・ロックに問題があると思われる場合、どのアプリケーションも 反復可能読み取り (RR) の振る舞いに依存せず、走査がコミットされていない削除をスキップしても 問題なければ、DB2_RR_TO_RS オプションをオンに設定できます。
DB2_RR_TO_RS がオンであれば、索引キーの挿入および削除で次のキー・ロックが行われないため、 ユーザー表に対する走査で RR の振る舞いは保証されません。 カタログ表はこのオプションの影響を受けません。
その他の振る舞いの変更は、DB2_RR_TO_RS がオンであれば、走査の対象となっている行であっても、 削除済みでコミットされていない行は走査でスキップされることです。
たとえば、トランザクション A が column1=10 の行を削除し、 トランザクション B が column1>8 かつ column1<12 を走査するとします。
DB2_RR_TO_RS がオフであれば、トランザクション B は、トランザクション A がコミット またはロールバックを行うのを待ちます。 トランザクション A がロールバックした場合、column1=10 の行はトランザクション B の 照会の結果セットに組み込まれます。
DB2_RR_TO_RS がオンであれば、トランザクション B は、トランザクション A がコミット またはロールバックを行うのを待ちません。 トランザクション B は、削除された行が含まれていない照会結果をすぐに受け取ります。
ANSI および SQL92 標準 RR が必要な場合、またはコミットされていない削除を走査にスキップさせたくない場合、 このオプションを使用しないでください。