Является ли NOLOCK (подсказка Sql Server) плохой практикой?

Я занимаюсь созданием сайтов и приложений, которыене критическое значение -> например. банковское программное обеспечение, космический полет, приложение для наблюдения за интенсивной терапией и т.д.

Итак, с этим массивным отказом от ответственности, плохо ли использовать подсказку NOLOCK в каком-то Sql-выражении? Несколько лет назад один из администраторов Sql предложил мне использовать NOLOCK, если я доволен «грязным чтением», которое даст мне немного большую производительность в моей системе, поскольку каждое чтение не блокирует таблица / строка / независимо.

Мне также сказали, что это отличное решение, если я испытываю тупики. Итак, я начал следовать этой мысли в течение нескольких лет, пока гуру SQL не помог мне со случайным кодом и не заметил все NOLOCKS в моем SQL-коде. Меня вежливо ругали, и он пытался объяснить это мне (почему это нехорошо), и я как-то заблудился. Я чувствовал, что суть его объяснения состояла в том, что «это бандитское решение более серьезной проблемы ... особенно если вы испытываете взаимоблокировку». Таким образом, исправьте корень проблемы ».

Я недавно немного погуглил по этому поводу и наткнулсяэта почта.

Так, может, какой-нибудь гуру-сэнсей, пожалуйста, просветите меня?

Ответы на вопрос(12)

Ваш ответ на вопрос