На работе я разрабатываю совершенно новый продукт, который должен скоро выйти в свет. Это преимущественно продукт ETL, который будет иметь дело с огромными объемами данных в операции типа очереди. Так что записи приходят, мы над ними работаем, а потом их собирают и отправляют обратно. Таким образом, все, что делается в этой системе, повторяется снова и снова, пока все записи не будут обработаны.
Мой начальник говорит мне (он открыт и разумен, это не требование), что я должен добавить NOLOCK
подсказок ко всем запросам.
Я разрываюсь на этом, потому что я всегда читал, что это плохая практика. Я также читал о подсказке READPAST
и думаю, что это может быть хорошей альтернативой, но я хочу узнать мнение других, поскольку никто в моей организации не использовал ее раньше.
Я так понимаю, что READPAST
подберет любые незаблокированные записи и просто проигнорирует заблокированные записи, что в некоторых системах я вижу как проблему. В этой системе, где задание снова запустится через несколько минут и, скорее всего, выберет ранее заблокированную запись, я не вижу, чтобы это имело значение. Это не очень чувствительно ко времени, поэтому, если запись занимает несколько минут дольше, потому что она заблокирована, это приемлемо.
Интересно, что другие думают по этому поводу? Я понимаю, что это не замена правильному индексированию, и я также работаю над этим.
NOLOCK
подсказки ко всем запросам. Объяснил ли ваш начальник причину этого? Прежде чем добавлятьNOLOCK
в любой запрос, нужно подумать о многом; пусть вместе одеяло добавить его к каждому отдельному. - person Larnu   schedule 27.08.2019NOLOCK
. Последнее, что вам нужно в системе очередей, это дублированные или пропущенные сообщения, что вполне возможно сNOLOCK
.NOLOCK
подходит только для запросов, где вам все равно, могут ли результаты быть неправильными, потому что вы можете легко запустить его повторно (например, запрос мониторинга). - person Jeroen Mostert   schedule 27.08.2019NOLOCK
редко используется по уважительной причине — обычно это рефлекторная реакция на людей, которые видят, что их запросы терпят неудачу из-за взаимоблокировок, и не знают, как их разрешить (или считают это слишком обременительной задачей). . Это плохая привычка, и есть альтернативы (например, снимок изоляция). - person Jeroen Mostert   schedule 27.08.2019