Лучше создать Oracle индексы SQL прежде или после загрузки данных?

Я должен заполнить таблицу с огромным объемом данных (много часов, загрузившись) на базе данных Oracle, и я задавался вопросом, который будет быстрее, для создания индекса на таблице прежде, чем загрузить его или после загрузки его. Я первоначально думал, что вставка на индексированной таблице оштрафована, но затем если я создаю индекс с полной таблицей, потребуется много времени. Который является лучшим?

5
задан AticusFinch 29 January 2010 в 08:37
поделиться

3 ответа

Создание индексов после загрузки данных намного быстрее. Если вы загружаете данные в таблицу с индексами, загрузка будет очень медленной из-за обновлений постоянного индекса. Если вы создаете индекс позже, он может быть эффективно заполнен только один раз (который, конечно, займет некоторое время, но Grand Total должен быть меньше).

Подобная логика применяется к ограничениям. Также включите тех позже (если вы не ожидаете, что данные потерпят неудачу и хотите знать, что рано).

12
ответ дан 18 December 2019 в 11:56
поделиться

Единственная причина, по которой вы, возможно, захотите создать индекс в первую очередь, заключается в применении уникальных ограничений. В противном случае, загрузка происходит намного быстрее с обнаженной таблицей - никаких индексов, ограничений, триггеров не включено.

2
ответ дан 18 December 2019 в 11:56
поделиться

Создание индекса после загрузки данных является рекомендуемой практикой при объемной загрузке. Вы должны быть уверены в качестве поступающих данных, особенно если вы используете уникальные индексы. Отсутствие индекса означает, что проверка данных, которая происходит из-за наличия уникальных индексов, не произойдет. Другой вопрос для вас, чтобы рассмотреть, есть ли у вас одноразовая операция загрузки или это будет обычным делом? Если это обычное дело, то вы можете опустить индексы перед каждой загрузкой данных и воссоздать их после успешной загрузки.

1
ответ дан 18 December 2019 в 11:56
поделиться
Другие вопросы по тегам:

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