Автономные транзакции
Материал из Википедии — свободной энциклопедии
Текущая версия страницы пока не проверялась опытными участниками и может значительно отличаться от версии, проверенной 15 февраля 2011;
проверки требуют 3 правки.
| Значимость предмета статьи поставлена под сомнение.
Пожалуйста, покажите в статье значимость её предмета, добавив в неё доказательства значимости по частным критериям значимости или, в случае если частные критерии значимости для предмета статьи отсутствуют, по общему критерию значимости. Подробности могут быть на странице обсуждения.
|
Автономные транзакции представляют собой новый метод управления транзакциями. Автономные транзакции позволяют создавать новые подтранзакции (subtransaction), которые могут сохранять или отменять изменения вне зависимости от родительской транзакции.
Содержание |
[править] Могут использоваться
- в анонимных блоках верхнего уровня;
- в локальных, отдельных или входящих в пакеты процедурах и функциях;
- в методах объектных типов;
- в триггерах базы данных.
[править] Когда удобно использовать
- Проверка, записи которой не могут быть отменены.
- Ошибка изменяющейся таблицы (Чаще всего она возникает при попытке читать данные из таблицы, в ответ на изменение которой сработал триггер).
- Выполнение операторов ЯОД в триггерах
- Запись в базу данных
- строгая проверка; необходимо знать, какие данные видел каждый из пользователей, или надо записать идентификатор каждой записи, запрошенной у системы;
- средство создания отчетов позволяет выполнять только SQL-операторы SELECT; абсолютно необходимо по ходу построения отчета вызывать хранимую процедуру, выполняющую ряд вставок (например, заполняющую таблицу параметров для другого отчета).
- Разработка модульного кода.
[править] Проблемы
- Невозможность использования в распределенных транзакциях.
- Автономные транзакции доступны только в среде PL/SQL.
- Откатывается вся транзакция
- Временные таблицы уровня транзакции (нельзя одновременно использовать в нескольких транзакциях в одном сеансе).
- Изменяющиеся таблицы (обязательно проверять корректность каждого триггера)
[править] См. также
Уровни изолированности транзакций
[править] Ссылки
| Это заготовка статьи о программном обеспечении. Вы можете помочь проекту, исправив и дополнив её. |

