| Общие понятия: - Механизм работы БД строиться на блокировках.
- Блокировка может применяться к разным объектам (строки, страницы, таблицы и др.)
(Гранулярные блокировки) - Блокировки могут иметь разный типы
Разделяемое чтение, эксклюзивный (монопольный) доступ. - Одиночные операции, выполняемые вне явной транзакции, тоже выполняются в рамках транзакции.
- При разрыве соединения неподтвержденная транзакция будет прервана (rollback).
- На блокировки можно явно влиять, используя табличные указания.
- Например можно взять блокировку на обновление при выполнении select запроса и удерживать до окончания транзакции. Другие транзакции при попытке взять блокировку на этот-же объект будут ожидать.
- Механизм SavePoint.
|
| Deadlock
 - В случае обнаружения DeadLock СУБД среди 2 транзакций выбирает одну.
Одна продолжит выполнение, а вторая прервется с ошибкой, которую должно обработать приложение. (В том числе возможно попытаться повторить транзакцию, рассчитывая, что в этот раз блокировки не будет или хотя бы она завершиться удачно, для этой транзакции) - Не все ситуации блокировки и ожидания определяются СУБД как DeadLock.
|