Dollar Føølish
Ну логично что таблица лочится, ему же надо наверное переместить переложить там все
При delete не обязательно двигать кучу всего. Например postgres проставит строчкам номер транзакции которая их удалила и может быть потом когда все транзакции которые могли бы видеть эти удаленные строчки завершатся он в фоне очистит это место если оно находится в конце таблицы или использует его для новой записи. SQL Server устроен по-другому, но тут я не особо знаю подробностей. Знаю только что у него есть два варианта Repeatable read. Обычный и юзающий снапшот (снапшот вариант по поведению близок к тому что в постгресе)