
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
23.10.2006, 13:04
|
|||
|---|---|---|---|
Как создать индекс на очень большой таблице. |
|||
|
#18+
Имеется мегаогромная таблица (сотни миллиардов строк). Таблица партиционирована (около 60 мил. строк в партиции). По таблице построены локально секционированные индексы. Вдруг выясняется, что надо построить еще один локально секциониованный индекс. Если делать по простому CREATE INDEX ..., то вываливается по ORA-01555. Решать проблему надо было быстро, и я: 1. переименовал таблицу. 2. Построил пустую партиционированную таблицу с нужным набором индексов. 3. Организовал переливку "по партициям" loop insert into <table1> select * from <table_2> partition <part_name>; commit; end loop; Работает, но медленно. (За три дня перенесено около 8-10 %% всех записей) Хочу подстраховаться "на будующее". Какие еще возможны способы создания индекса по такой огромной таблице? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
23.10.2006, 13:16
|
|||
|---|---|---|---|
Как создать индекс на очень большой таблице. |
|||
|
#18+
Не пробовал на таких объемах, но вроде должен помочь partition exchange. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
23.10.2006, 13:22
|
|||
|---|---|---|---|
Как создать индекс на очень большой таблице. |
|||
|
#18+
partition exchange: т.е. пункты 1 и 2 моих действий оставляем , а п 3. переписываем с использованием partition exchange? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
23.10.2006, 13:30
|
|||
|---|---|---|---|
Как создать индекс на очень большой таблице. |
|||
|
#18+
А если как вариант 1. Переименовать старую 2. Создать как надо новую 3. Эспортнуть старую (если 10 то expdp) 4. Залить дамп в новую ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
23.10.2006, 13:44
|
|||
|---|---|---|---|
Как создать индекс на очень большой таблице. |
|||
|
#18+
Maxiflypartition exchange: т.е. пункты 1 и 2 моих действий оставляем , а п 3. переписываем с использованием partition exchange? это при отсутствии глобальных индексов Можно попробовать так 1. приложению сказать skip_unusable_indexes 2. create index unusable 3. rebuild по партициям ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
23.10.2006, 14:04
|
|||
|---|---|---|---|
Как создать индекс на очень большой таблице. |
|||
|
#18+
VicZai4. Залить дамп в новую Думаю, будет очень долго. Создать индекс над готовыми данными - намного быстрее, нежели заливать данные, попутно индексируя. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
23.10.2006, 14:08
|
|||
|---|---|---|---|
|
|||
Как создать индекс на очень большой таблице. |
|||
|
#18+
А если так: 1)Создать специальный сегмент отката(если не в AUTO режиме) большого размера 2)set transaction use rollback segment large_rb; 2)create index on ... nologging; 3)alter index .... logging; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
23.10.2006, 14:10
|
|||
|---|---|---|---|
Как создать индекс на очень большой таблице. |
|||
|
#18+
decode!А если так: Думаю, после предложения DBA вряд ли стоит обсуждать другие варианты. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
23.10.2006, 14:13
|
|||
|---|---|---|---|
Как создать индекс на очень большой таблице. |
|||
|
#18+
имхо, так Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
23.10.2006, 14:16
|
|||
|---|---|---|---|
Как создать индекс на очень большой таблице. |
|||
|
#18+
кхе - припоздал я ,однако.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
23.10.2006, 14:17
|
|||
|---|---|---|---|
|
|||
Как создать индекс на очень большой таблице. |
|||
|
#18+
В чём суть create... UNUSABLE? Создаётся только определение индекса, а сам индекс нет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
23.10.2006, 14:19
|
|||
|---|---|---|---|
Как создать индекс на очень большой таблице. |
|||
|
#18+
decode!В чём суть create... UNUSABLE? Создаётся только определение индекса, а сам индекс нет? создается только пустой корневой блок индекса ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
23.10.2006, 15:12
|
|||
|---|---|---|---|
|
|||
Как создать индекс на очень большой таблице. |
|||
|
#18+
А вернуть из UNUSABLE в USABLE не нужно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
23.10.2006, 15:23
|
|||
|---|---|---|---|
Как создать индекс на очень большой таблице. |
|||
|
#18+
decode!А вернуть из UNUSABLE в USABLE не нужно? REBUILD вернет в USABLE. С уважением, bw. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
23.10.2006, 15:25
|
|||
|---|---|---|---|
|
|||
Как создать индекс на очень большой таблице. |
|||
|
#18+
риспект! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
08.02.2008, 15:38
|
|||
|---|---|---|---|
|
|||
Как создать индекс на очень большой таблице. |
|||
|
#18+
orawish, спасибо огроменное... чтож я раньше не увидел эту темку =) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
08.02.2008, 16:31
|
|||
|---|---|---|---|
Как создать индекс на очень большой таблице. |
|||
|
#18+
А кляуза PARALLEL тут не поможет ли? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
08.02.2008, 23:07
|
|||
|---|---|---|---|
|
|||
Как создать индекс на очень большой таблице. |
|||
|
#18+
после создания индексов с unusable, очень удобно использование dbms_pclxutil.build_part_index... детали смотри в документации. Классная вещь для локальных индексов ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
16.01.2017, 15:11
|
|||
|---|---|---|---|
|
|||
Как создать индекс на очень большой таблице. |
|||
|
#18+
Мне удалось добиться ускорения с помощью: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=52&mobile=1&tid=1886643]: |
0ms |
get settings: |
7ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
196ms |
get topic data: |
25ms |
get forum data: |
3ms |
get page messages: |
76ms |
get tp. blocked users: |
2ms |
| others: | 235ms |
| total: | 567ms |

| 0 / 0 |
