Ускорить создание индекса с 5 часов

AlexGru
Дата: 04.03.2011 17:03:33
Есть огромная таблица, не суть какая она. С возможностью партицирования по листу на 4 части в отношении 50 30 10 10 по % частей., пока она не партицирована.

Создаётся индекс на несколько полей, 5 часов.

При этом над таблицей не выполняются DML.

Что можно сделать чтобы уменьшить время создания индекса.

Пока идеи задействовать партицирование и поиграться с параллельностью. Что ещё можете подсказать.
Хотя может он и так в параллельном режиме создаётся, пока не смотрел., он как раз в процессе создания на 2-ом часу уже.
MacDuck
Дата: 04.03.2011 17:46:07
AlexGru
При этом над таблицей не выполняются DML.


Ничего не понял. Почему не выполняются?
В чем проблема, объясните потолковей.
PaulEr
Дата: 04.03.2011 17:47:18
MacDuck
AlexGru
При этом над таблицей не выполняются DML.


Ничего не понял. Почему не выполняются?
В чем проблема, объясните потолковей.


Возможно ТС имел ввиду, что с таблицей никто в это время не работает.
locks
Дата: 04.03.2011 17:50:42
MacDuck
AlexGru
При этом над таблицей не выполняются DML.


Ничего не понял. Почему не выполняются?
В чем проблема, объясните потолковей.


Не выполняются, потому что блокировка наложена командой построения индекса.
locks
Дата: 04.03.2011 17:51:39
locks
MacDuck
пропущено...


Ничего не понял. Почему не выполняются?
В чем проблема, объясните потолковей.


Не выполняются, потому что блокировка наложена командой построения индекса.


Соответственно всё DML по данной таблице встают в enqueue
ORA__SQL
Дата: 04.03.2011 18:00:36
locks
locks
пропущено...
Не выполняются, потому что блокировка наложена командой построения индекса.

Соответственно всё DML по данной таблице встают в enqueue

Creating an Index Online
http://download.oracle.com/docs/cd/B19306_01/server.102/b14231/indexes.htm#sthref2541
locks
Дата: 04.03.2011 18:05:17
ORA__SQL
locks
пропущено...

Соответственно всё DML по данной таблице встают в enqueue

Creating an Index Online
http://download.oracle.com/docs/cd/B19306_01/server.102/b14231/indexes.htm#sthref2541


Даже в случае с ONLINE, который идёт намного медленнее чем без ONLINE, что топикатсеру ещё хуже(смотрим название "ускорить"), в конце накладывается блокировка, и если команда создания индекса не сможет её наложить, то команда так и будет висеть.
Sergei.Agalakov
Дата: 04.03.2011 19:24:04
Проверить, что TEMP не растет в размерах (бывает, что он слишком мал, и autoextend добавляет ему по мегабайту за раз). Желательно TEMP держать на чем-нибудь пошустрее RAID5.
Добавить доступной памяти в PGA (сортировка, однако). Ну и partition+parallel, если возможно.
AlexGru
Дата: 05.03.2011 07:22:07
Да, имеется ввиду, что ни кто не работает с таблицей на вставку/измен/удаление вообще.
Только выборки.
быстрое создание индексов (недор
Дата: 05.03.2011 08:20:26
AlexGru
Только выборки.
отсортировать таблицу, затем create index nosort