Создать индекс в существующей таблице Oracle
Можно ли создать индекс в существующей таблице в оракуле?
Вот так:
CREATE INDEX table_sample_ix03
ON table_sample
(
col4,
col22
)
TABLESPACE data
STORAGE
(
INITIAL 10M NEXT 2M
MINEXTENTS 1 MAXEXTENTS 100
PCTINCREASE 0
)
;
Ответы
Ответ 1
Предложение ONLINE рекомендуется при создании индекса, когда запросы DML выполняются в таблице. См. http://docs.oracle.com/cd/B19306_01/server.102/b14200/statements_5010.htm
Пример:
CREATE INDEX "MYINDEX" ON "MYTABLE" ("MYCOLUMN") ONLINE;
Ответ 2
Да. Но, если это возможно, вы должны это делать, пока никто не обновляет таблицу, потому что они пострадают от производительности (все равно безопасно это делать в любом случае, не будет никакого искажения данных).
Ответ 3
Да. Почему бы и нет?
Я могу только думать о возможных проблемах с производительностью сразу после выдачи команды. Если таблица очень большая, индексирование может занять некоторое время, но это не должно быть хорошо.