14 мая 2011 г.

oracle: Создание больших индексов

При создании очень большого индекса стоит подумать о выделении временного табличного пространства большого размера для создания индекса. Далее опишем процедуру создания большого индекса:
  1. Создайте временное табличное пространство, используя конструкцию CREATE TABLESPACE или CREATE TEMPORARY TABLESPACE.
  2. С помощью параметра TEMPORARY TABLESPACE конструкции ALTER USER назначьте созданное табличное пространство как новое временное табличное пространство.
  3. Создайте индекс с помощью CREATE INDEX.
  4. Верните временное табличное пространство пользователю, выполнив ALTER USER … TEMPORARY TABLESPACE. И затем удалите ненужное табличное пространство, выполнив DROP TABLESPACE.
Возникает вопрос, а почему нельзя было использовать уже существующее табличное пространство, и как следствие избежать создания, удаления, модификации пользователя?
Описанная выше процедура может помочь избежать проблем с расширением обычного, и как правило, разделяемого временного табличного пространства до слишком большого размера, что может сказаться на производительности системы.