Блокировка и взаимоблокировка - разные вещи. Пожалуйста, прочтите эту статью для получения более подробной информации. .
Далее скопировано из статьи:
Разработчики и администраторы баз данных часто думают, что их экземпляр SQL Server испытывает тупиковые ситуации, хотя на самом деле он испытывает серьезную блокировку.
Блокировка происходит, когда сеанс A запрашивает блокировку ресурса (обычно строки, страницы или таблицы), но SQL Server не может предоставить эту блокировку, поскольку сеанс B уже удерживает несовместимую блокировку этого ресурса.
Это временная ситуация, и она может быть полностью разрешена сеансом B, завершившим свою работу и разблокировавшим свои блокировки. Возможны обширные цепочки блокировки, в которых несколько сеансов блокируются в ожидании сеанса, который сам заблокирован в ожидании другого заблокированного сеанса, и так далее, повторяясь несколько раз. Однако во главе цепочки блокировки будет головной «блокировщик», не ожидающий блокировки. Он может ожидать какого-то другого ресурса, такого как защелка, память или ввод-вывод, но по крайней мере один сеанс не будет ожидать блокировки, и цепочка блокировки будет очищена, как только головной блокиратор сможет продолжить обработку.
Взаимоблокировка — это другое; это происходит, когда два или более сеанса ожидают друг друга таким образом, что ни один из них не может завершиться. Взаимоблокировку можно рассматривать как циклическую цепочку блокировок, в которой каждый отдельный процесс в цепочке блокировки ожидает один или несколько других процессов в той же цепочке блокировки.
person
Learner
schedule
20.03.2017