У мене є таблиця в базі даних SQL Server з кластерним індексом на первинному ключі. У таблиці 1 мільйон рядків. Якщо я видаляю 10K рядків з таблиці, чи індексується реструктуризація під час операції видалення?
Операція видалення є частиною збереженої процедури. За один раз, більше ніж один клієнт може виконати збережену процедуру, однак кожен окремий запуск видалить власний набір рядків (унікально визначений первинним ключем). Я блокую ключ блокування ключа (типу U), коли процедура виконує кілька клієнтів. Блокування блокатора належить до рядка з тієї ж таблиці, і він не є частиною жодної з одночасно запущених транзакцій. Блокування не повинно бути, оскільки кожен запуск намагається видалити власний набір рядків. Ескалація блокування не відбувається, оскільки вона вимкнена.
Я підозрюю, що операція з видаленням повинна спричиняти повторне врівноваження індексу, а отже, під час процесу реструктуризації він може робити блокування ключів у будь-якому рядку таблиці.
Я дуже вдячний будь-якій думці з цього приводу.