Не вдалося виконати запит "" із такою помилкою: "Індекс" "(розділ 1) таблиці" "неможливо переорганізувати, оскільки блокування рівня сторінки вимкнено."
План технічного обслуговування повинен робити спроби ALTER INDEX REORGANIZE, що є операцією в Інтернеті. Щоб видалити фрагментацію (сторінки не в порядку), сторінки потрібно заблокувати та перемістити, що неможливо, якщо блокування сторінок було вимкнено. Єдиний спосіб дефрагментації без блокування сторінок - це блокування всього розділу, що неможливо лише REORGANIZE як його онлайн.
Яка різниця між двома блокувальними схемами та якими є їх реальні наслідки (у виробництві)?
Вам потрібно зрозуміти, що таке запис та сторінка, щоб оцінити вплив заборони певного типу блокування. Якщо ви не знайомі із внутрішніми сховищами SQL Server, починайте з « Анатомія запису та анатомія сторінки» . Поставте дуже просто:
- рядки = записи
- рядки зберігаються на сторінках 8 кб
Якщо ви повинні змінити дозволені типи блокування:
- Вимкнути блокування сторінок = Блокування рядків і таблиць
- Вимкнути блокування рядків = Блокування сторінок і таблиць
- Вимкнути обидва = Блокування лише таблиць
Я знаю два сценарії, де мені може бути корисно відключити тип блокування. Це не означає, що інших немає, сподіваємось, хтось інший приступить до прикладів.
Таблиця пошуку, яка часто доступна, яка нечасто змінюється. Відключивши блокування сторінок та рівнів, усі читачі приймуть загальну блокування таблиці. Це швидше / дешевше, ніж звичайне спільне використання намірів на столі, після чого - спільне використання намірів на сторінці та, нарешті, загальний замок у певному рядку чи рядках.
Запобігання конкретному сценарію тупикової ситуації - якщо ви стикаєтесь із тупиковими ситуаціями, спричиненими одночасними процесами придбання блокувань, які часто знаходяться на одній сторінці, заборона блокування рядків призводить до того, що замість цього буде зроблено блокування сторінок. Тоді лише один процес може отримати доступ до сторінки за один раз, інший повинен зачекати.
Перший приклад - мікрооптимізація і навряд чи принесе корисну користь для типової системи. Другий вирішить конкретний сценарій тупикової ситуації, але може внести несподівані побічні ефекти, наприклад, вбивство одночасності в іншому розділі коду. Складно оцінити вплив повністю, підходити обережно!
За замовчуванням увімкнено обидва, і це не повинно бути змінено без поважної причини.