Что такое livelock? В SQL когда / как это происходит? Что-нибудь разработчик T-SQL может сделать, чтобы избежать этого?

Я сталкивался с этим жаргоном для SQL Server, я просто не в состоянии понять, что именно происходит в SQL Server. Я смотрю на некоторый пример SQL Server, где это происходит...

Я искал на Google, но все продолжают получать это 2 человека в примере коридора.

1 ответ

Тупик возникает, когда два процесса конкурируют за одни и те же ресурсы, но в порядке, который вызывает тупиковую ситуацию. Например, A блокирует X, затем пытается заблокировать Y, в то время как B блокирует Y и пытается заблокировать X. Ключ в том, что два (или более) процесса не позволяют друг другу что-либо делать.

Живая блокировка возникает, когда существуют перекрывающиеся общие блокировки, которые не позволяют другому процессу получить эксклюзивную блокировку, в которой он нуждается. Разница в том, что все эти перекрывающиеся процессы продолжают выполнять свою работу, поэтому они все еще "живы" - только жертва блокируется, пока они не закончили. Который может никогда не быть на достаточно занятой, плохо спроектированной системе.:-) Возможно, вам удастся преодолеть эту ситуацию, повысив приоритет тупика для своих авторов, но, честно говоря, это не тот сценарий, который я видел очень часто, и я работал с SQL Server с версии 6.5...

Другие вопросы по тегам