Anton Sidorov homepage

Bookmark this to keep an eye on my project updates!

Follow me on GitHub

Блокировки

Зачем

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

Паттерны