Оправдание не используя (nolock) намек в каждом запросе

dba.stackexchange https://dba.stackexchange.com/questions/2684

  •  16-10-2019
  •  | 
  •  

Вопрос

Вам когда -нибудь приходилось оправдать, не используя подсказку запроса?

я вижу WITH (NOLOCK) В каждом отдельном запросе, который попадает в очень занятый сервер. Дело в том, что разработчики считают, что это должно быть просто по умолчанию, потому что они ненавидят видеть это в своем коде тысячи раз.

Я попытался объяснить, что это допускает грязные чтения, и в конечном итоге они получат плохие данные, но они считают, что компромисс производительности того стоит. (Их база данных - беспорядок; неудивительно, что у них проблемы с производительностью.)

Если у вас есть явный пример того, как представить дело против этого злоупотребления NOLOCK Подсказка, это будет оценено.

Это было полезно?

Решение

Вы выбираете свои битвы и такие битвы, как это нельзя легко выиграть. У нас есть система, в которой каждый DML намекает на подсказку Rowlock (независимо от модификации одного ряда или нескольких тысяч рядов). Я показал несколько примеров, почему это действительно вредит производительности, но, поскольку система уже работает, есть сопротивление изменениям. Обратите внимание, что я убедил их достаточно, чтобы не использовать это в будущем.

У Нолока есть место, но я могу порекомендовать несколько хороших ссылок, демонстрирующих проблемы использования:

Другие советы

Это обсуждалось на так:

Определите очень занято. У нас высокие объемы (50 тыс. Новых строк в секунду, большие агрегаты и т. Д.) И не видим необходимости получить хитрые данные

Вы должны объяснить своим коллегам важность понимания уровней изоляции. Покажите им примеры. Самое приятное и простое объяснение, которое я нашел на маленькой Кендре плакат уровней изоляцииАнкет Спросите их, почему они думают, что им нужен намек на нолок. Почему они не используют операторы «Уровень изоляции транзакции ...»? Спросите, в какой именно ситуации они хотят исправить, может быть, у них есть тупики, блокировка ..ет. Если они просто не хотят держать замки, они могут рассмотреть уровень изоляции снимков.

Только спросив их, у вас может быть четкая картина.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с dba.stackexchange
scroll top