Коли SQL Server придбає блокування?


10

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

Чи блокуються за замовчуванням замовлення на початку транзакції чи просто тоді, коли вони потрібні? Якщо останнє вірно, чи було б вигідно великим транзакціям виконувати операції запису якомога пізніше, щоб мінімізувати кількість часу, що проводиться блокуваннями X?

Відповіді:


5

Чи блокуються за замовчуванням замовлення на початку транзакції чи просто тоді, коли вони потрібні?

Замки набуваються безпосередньо перед читанням чи написанням. Залежно від деталізації блокування, обраного механізмом зберігання, блокування може бути придбано на рівні рядка, сторінки, розділу чи об'єкта (таблиці).

Якщо останнє вірно, чи було б вигідно великим транзакціям виконувати операції запису якомога пізніше, щоб мінімізувати кількість часу, що проводиться блокуваннями X?

Так, це може бути вигідним для паралельності, залежно від рівня ізоляції, що використовується одночасними транзакціями.

Пов'язане читання:

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.