Вставка данных после создания индекса на пустой таблице или создании уникального индекса после вставки данных по оракулу?

Какой вариант лучше и быстрее? Вставка данных после создания индекса на пустой таблице или создании уникального индекса после вставки данных. Я имею вокруг 10M строки для вставки. Какой вариант был бы лучше так, чтобы у меня могло быть наименьшее количество времени простоя.

9
задан DKSRathore 31 December 2009 в 04:49
поделиться

3 ответа

Сначала вставьте данные, затем создайте индекс.

Каждый раз, когда вы выполняете операцию UPDATE, INSERT или DELETE, любые индексы в таблице также должны обновляться. Таким образом, если вы сначала создадите индекс, а затем вставите 10М строк, то индекс также нужно будет обновлять 10М раз (если только вы не выполняете оптовые операции)

.
19
ответ дан 4 December 2019 в 08:01
поделиться

Быстрее и лучше вставлять записи, а затем создавать индекс после импорта строк. Это быстрее, потому что у вас нет накладных расходов по обслуживанию индексов по мере вставки строк, и лучше с точки зрения фрагментации ваших индексов.

Очевидно, что для уникального индекса, убедитесь, что импортируемые данные уникальны, чтобы у вас не было сбоев при попытке создания индекса.

.
6
ответ дан 4 December 2019 в 08:01
поделиться

Как сказали другие, сначала вставьте, а потом добавьте индекс. Если таблица уже существует, и вы должны вставить кучу данных, как эта, снять все индексы и ограничения, вставить данные, а затем снова применить сначала ваши индексы, а затем ваши ограничения. Вам наверняка захочется сделать промежуточные фиксации, чтобы исключить возможность того, что у вас закончится место в сегменте отката или что-то подобное. Если вы вставляете столько данных, то может оказаться полезным посмотреть на использование SQL*Loader, чтобы сэкономить время и снять напряжение.

Надеюсь, это поможет.

2
ответ дан 4 December 2019 в 08:01
поделиться
Другие вопросы по тегам:

Похожие вопросы: