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