Замечания по выпуску


14.2 Глава 2. Troubleshooting the DB2 Universal Database Server

В разделе "Locking and Deadlocks" (Блокировка и тупиковые ситуации) в подразделе "Applications Slow or Appear to Hang" (Программа работает медленно или зависает) описание под заголовком "Lock waits or deadlocks are not caused by next key locking" надо заменить на :

Блокировка следующего ключа гарантирует уровень изоляции Многократное чтение (RR), автоматически блокируя следующий ключ для всех операторов INSERT и DELETE и следующее большее значение ключа для набора результатов для операторов SELECT. Для операторов UPDATE, которые изменяют части ключей в индексе, исходное значение ключа удаляется, а новое значение - вставляется. Блокировка следующего значения при этом производится и для вставки ключа, и для удаления ключа. Это требуется для обеспечения стандартного многократного чтения ANSI и SQL92 и используется в DB2 по умолчанию.

Проверьте информацию снимка для программы. Если есть подозрение, что проблема связана с блокировкой следующего ключа, можно включить переменную реестра DB2_RR_TO_RS, если никакие программы не полагаются на эффекты многократного чтения(RR) и если при просмотре приемлем пропуск непринятых удалений.

Если переменная DB2_RR_TO_RS включена, поведение RR при просмотре не может быть гарантировано, поскольку при вставке и удалении ключей индекса блокировка следующего ключа не выполняется. На таблицы каталогов эта опция не влияет.

Другой эффект включения переменной DB2_RR_TO_RS - пропуск при просмотре удаленных, но непринятых строк, даже если эти строки могут быть отобраны для просмотра.

Рассмотрим, например, ситуацию, когда транзакция A удаляет строку с column1=10, а транзакция B выполняет просмотр строк, для которых column1>8 и column1<12.

Если DB2_RR_TO_RS выключена, транзакция B будет ждать принятия или отката транзакции A. В случае отката строка с column1=10 будет включена в набор результатов запроса транзакции B.

Если DB2_RR_TO_RS включена, транзакция B не будет ждать принятия или отката транзакции A. Она немедленно получит результаты запроса без удаляемой строки.

Не используйте эту опцию, если вам требуется уровень изоляции Многократное чтение (RR) стандарта ANSI и SQL92 или если вы не хотите при просмотре пропускать удаляемые строки до принятия удаления.


[ Начало страницы | Страница назад | Страница вперед | Содержание | Индекс ]