Автономные транзакции

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск

Автономные транзакции представляют собой новый метод управления транзакциями. Автономные транзакции позволяют создавать новые подтранзакции (subtransaction), которые могут сохранять или отменять изменения вне зависимости от родительской транзакции.

Содержание

[править] Могут использоваться

  • в анонимных блоках верхнего уровня;
  • в локальных, отдельных или входящих в пакеты процедурах и функциях;
  • в методах объектных типов;
  • в триггерах базы данных.

[править] Когда удобно использовать

  • Проверка, записи которой не могут быть отменены.
  • Ошибка изменяющейся таблицы (Чаще всего она возникает при попытке читать данные из таблицы, в ответ на изменение которой сработал триггер).
  • Выполнение операторов ЯОД в триггерах
  • Запись в базу данных
    • строгая проверка; необходимо знать, какие данные видел каждый из пользователей, или надо записать идентификатор каждой записи, запрошенной у системы;
    • средство создания отчетов позволяет выполнять только SQL-операторы SELECT; абсолютно необходимо по ходу построения отчета вызывать хранимую процедуру, выполняющую ряд вставок (например, заполняющую таблицу параметров для другого отчета).
  • Разработка модульного кода.

[править] Проблемы

  • Невозможность использования в распределенных транзакциях.
  • Автономные транзакции доступны только в среде PL/SQL.
  • Откатывается вся транзакция
  • Временные таблицы уровня транзакции (нельзя одновременно использовать в нескольких транзакциях в одном сеансе).
  • Изменяющиеся таблицы (обязательно проверять корректность каждого триггера)

[править] См. также

Уровни изолированности транзакций

[править] Ссылки


Личные инструменты
Пространства имён

Варианты
Действия
Навигация
Участие
Печать/экспорт
Инструменты