В Oracle RDBMS, если вы используете несколько потоков для вставки очень большого объема данных, которые влияют на один сегмент индекса (например, обычный индекс в неразделенной таблице или локальный индекс в многораздельной таблице), вставки станут медленный из-за разногласий по индексу. Каждый поток конкурирует за защелки и блокировки в индексе, что является основной причиной проблемы с производительностью. Эту проблему можно решить, разделив таблицу на разделы и запустив по одному потоку на раздел, который вставляет подмножество очень больших данных.
Есть ли такая же проблема при удалении очень большого объема данных? Я думаю, что удаление также требует блокировки подмножества индекса, что заблокирует другие потоки, которые вставляют/удаляют в этом подмножестве. Однако мне не ясно, аналогична ли степень блокировки при выполнении удаления степени блокировки при выполнении вставки. Возможно, количество блокировок намного меньше или время, необходимое для блокировки, меньше, и, следовательно, конкуренция также будет намного меньше.
Возможно, есть и другие случаи, которые следует учитывать: возможно, удаления блокируют другие удаления, но, возможно, удаления не блокируют другие вставки, потому что, скорее всего, параллельное удаление и вставка не будут работать с одними и теми же блоками данных.
Любые ссылки были бы замечательными.