Язык программирования баз данных Informix-4GL


Уровни изоляции


Уровень изоляции представляет собой степень изолированности программы от параллельных действий со стороны других программ. Informix-Online предоставляет четыре уровня изоляции:

  • Dirty Read (грязное чтение);
  • Committed Read (подтвержденное чтение);
  • Cursor Stability (чтение по установленному курсору);
  • Repeatable Read (повторяемое чтение).

Уровень изоляции Dirty Read

Простейший уровень изоляции Dirty Read (грязное чтение)

Set isolation to dirty read

фактически означает отсутствие какой-либо изоляции. Когда программа выбирает строку, она не устанавливает никаких блокировок и просто копирует строки из базы данных, не обращая внимания на то, что делают другие программы.

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

Уровень грязного чтения может быть полезен:

  • когда таблица является постоянной по содержанию и не меняется;
  • не требуется стопроцентная точность воспроизведения, а важна скорость доступа к данным и право владения ими;
  • нет возможности ждать освобождения замков.

Уровень изоляции Committed Read

При использовании уровня изоляции Committed Read (подтвержденное чтение)

Set isolation to committed read

Informix-Online гарантирует, что никогда не вернет строку, не зафиксированную в базе данных. Это предотвращает ситуацию, соответствующую четвертому эффекту параллелизма. Перед выборкой строки сервер проверяет, установил ли обновляющий процесс блокировку этой строки. Поскольку уровень изоляции Committed Read сам не устанавливает блокировки выбранной строки, он почти столь же эффективен, как и уровень Dirty Read. Уровень изоляции Committed Read подходит для использования в тех случаях, когда каждая строка обрабатывается как независимая единица данных без ссылок на другие строки в той же самой или других таблицах и может использоваться:




Начало  Назад  Вперед



Книжный магазин