Когда SQL Server получает блокировки?


10

Список уровней изоляции в SQL Server найден здесь говорится , что блокировки записи , полученные в рамках транзакции, сохраняются до конца транзакции. Однако ничего не говорится о том, когда эти замки были приобретены.

Блокировки по умолчанию приобретаются в начале транзакции или только тогда, когда они необходимы? Если последнее верно, то было бы поэтому выгодно в больших транзакциях выполнять операции записи как можно позже, чтобы минимизировать время, в течение которого удерживаются блокировки X?

Ответы:


5

Блокировки по умолчанию приобретаются в начале транзакции или только тогда, когда они необходимы?

Замки приобретаются непосредственно перед тем, как происходит чтение или запись. В зависимости от степени детализации блокировки, выбранной механизмом хранения, блокировки могут быть получены на уровне строки, страницы, раздела или объекта (таблицы).

Если последнее верно, то было бы поэтому выгодно в больших транзакциях выполнять операции записи как можно позже, чтобы минимизировать время, в течение которого удерживаются блокировки X?

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

Связанное чтение:

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.