Що таке allow_page_locks у SQL Server?
2024ALLOW_PAGE_LOCKS = { ON | ВИМК.} Визначає, чи дозволено блокування сторінок. За замовчуванням увімкнено. Під час доступу до покажчика дозволено блокування сторінок. Database Engine визначає, коли використовуються блокування сторінок. 22 травня 2024 р
З блокуванням сторінки, сервер бази даних блокує всю сторінку, яка містить рядок. Якщо ви оновлюєте кілька рядків, які зберігаються на одній сторінці, сервер бази даних використовує лише одне блокування для сторінки. Встановіть режим блокування рядка або сторінки для всіх операторів CREATE TABLE.
Корисні способи уникнення та мінімізації взаємоблокувань SQL Server
- Намагайтеся робити транзакції короткими; це дозволить уникнути утримання блокувань у транзакції протягом тривалого періоду часу.
- Доступ до об’єктів подібним логічним чином у кількох транзакціях.
- Створіть індекс покриття, щоб зменшити ймовірність взаємоблокування.
Використання ROWLOCK:
- Блокування на рівні рядка ROWLOCK гарантує, що коли користувач отримає оновлений рядок, він не буде змінений іншими користувачами протягом цього часу. …
- ROWLOCK повідомляє SQL Server використовувати блокування лише на рівні рядків.
- Використовуйте в операторі select.
ALLOW_ROW_LOCKS = { ON | OFF } Визначає, чи дозволено блокування рядків. За замовчуванням увімкнено . Під час доступу до індексу дозволено блокування рядків. Database Engine визначає, коли використовуються блокування рядків.
Блокування рядків — це найнижчий рівень деталізації блокування, можливий у SQL Server. Це означає, що один або кілька певних рядків буде заблоковано, а суміжні рядки все ще доступні для блокування одночасними запитами. Блокування сторінки в SQL Server заблокує 8 Кб даних, навіть якщо ваш запит потребує лише 10 байт зі сторінки.
Ви можете заблокувати документ запобігти його випадковому редагуванню, переміщенню, видаленню або перейменуванню.