Oracle. Транкейт секций, вставка, глобальные индексы | |
---|---|
Pekpytep Автор Сообщений: 727 Откуда: Луганск Дата регистрации: 19.10.2010 |
Всем привет.
Есть секционированная таблица, содержащая около 30 млрд. записей с индексами. Необходимо удалить часть записей за последние месяц-полтора, пересчитать агрегаты и снова добавить в таблицу (пусть будет 5-10 млн записей). Как известно, при транкейте секции глобальные индексы становятся UNUSABLE, локальные секционированные индексы это не затрагивает. Собственно, вопрос состоит в выборе стратегии. Можно сначала сделать транкейт секций (что сломает индексы), сделать вставку, затем перестроить весь индекс:
Или же обновить индексы при транкейте, затем индекс будет актуализироваться во время вставки:
В первом случае, предполагаю, вставка будет быстрее, но придется перестраивать весь индекс целиком. Во втором случае, вероятно, индекс будет тормозить вставку. У кого какие мысли по этому поводу? Буду благодарен если поделитесь опытом. |
Re: Oracle. Транкейт секций, вставка, глобальные индексы | |
---|---|
pasha_usue Сообщений: 3650 Откуда: Е-бург Дата регистрации: 06.10.2006 |
Перестроенный с нуля индекс обычно более оптимален по высоте индекса и заполненности веток, чем формирующийся в процессе появления новых значений.
|
Re: Oracle. Транкейт секций, вставка, глобальные индексы | |
---|---|
Pekpytep Автор Сообщений: 727 Откуда: Луганск Дата регистрации: 19.10.2010 |
Но при перестроении индекса же будет обработано 30 миллиардов записей, а при инсерте - 10 миллионов. При этом система в общем-то скорее olap, чем oltp - т.е. там нет вставок, изменения, удаления одиночных записей.
По-хорошему, не помешало бы испытать оба варианта с замером времени выполнения и нагрузки. Есть только одна проблема - тестовой площадки у меня нет, только прод. |
Re: Oracle. Транкейт секций, вставка, глобальные индексы | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
Мануал советует использовать UPDATE INDEXES если объём затрагиваемых операцией секций < 5% от общего размера таблицы.
Потери от не самой оптимальной внутренней организации индекса IMHO мало существенны. Конечно же для статических данных (раз залил, потом месяц пользуешься без insert/update) имеет смысл подумать и о такой мелочи - но не в первую очередь. Всё же цена перестройки 30G-записной таблицы весьма высока. ------------------ WBR, Igor |
Re: Oracle. Транкейт секций, вставка, глобальные индексы | |
---|---|
Pekpytep Автор Сообщений: 727 Откуда: Луганск Дата регистрации: 19.10.2010 |
5% от общего количества секций или записей?
Можно ссылку на страницу мануала? Что-то не нахожу. |
Re: Oracle. Транкейт секций, вставка, глобальные индексы | |
---|---|
Pekpytep Автор Сообщений: 727 Откуда: Луганск Дата регистрации: 19.10.2010 |
|
© 2000-2024 Fox Club  |