Блокировки
Зачем
- Если в системе установлен бесконечный период ожидания завершения транзакции (а это задано по умолчанию), то при возникновении deadlock для двух транзакций вполне возможно, что, ожидая освобождения заблокированных ресурсов, в тупике окажутся и новые транзакции.
- Чтобы избежать подобных проблем, в среде MS SQL Server реализован специальный механизм разрешения конфликтов deadlock.
- Для этих целей сервер снимает одну из блокировок, вызвавших конфликт, и откатывает инициализировавшую ее транзакцию. При выборе блокировки, которой необходимо пожертвовать, сервер исходит из соображений минимальной стоимости.
Паттерны