powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Копирование данных в секционную таблицу
10 сообщений из 10, страница 1 из 1
Копирование данных в секционную таблицу
    #39817894
RichardIV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
У меня в БД хранятся данные в главной таблице за 15 лет.
С целью оптимизации и т.п. создал отдельное табличное пространство, в нем разместил новую таблицу с партициями за каждый из годом, данные в этой таблице хранятся в сжатом виде. Индексы построены локальные.
Все успешно перекопировал, индексы создал.

Теперь встал вопрос о до-копировании данных за прошедший год в неё.
За 2018 год секция пока пустая. Я правильно понимаю, что надо сначала отключить локальные индексы в данной секции, скопировать данные и перестроить локальные индексы?
...
Рейтинг: 0 / 0
Копирование данных в секционную таблицу
    #39818348
RichardIV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Или индексы не отключать при копировании? Как правильно?
...
Рейтинг: 0 / 0
Копирование данных в секционную таблицу
    #39818856
kernA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RichardIV,

достаточно пересоздать индексы, в статусе status='UNUSABLE', для своих партиций (alter index ... rebuild partition).

Посмотреть статус и партицию индекса можно в представлении user_ind_partitions.
...
Рейтинг: 0 / 0
Копирование данных в секционную таблицу
    #39818871
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RichardIVИли индексы не отключать при копировании? Как правильно?
Однозначного ответа нет.
Зависит, как минимум, от объема загрузки и наличия технологического окна.
...
Рейтинг: 0 / 0
Копирование данных в секционную таблицу
    #39818875
RichardIV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Объем данных планируется ~ 200 млн строк.
Пока планирую делать так:
1) ALTER TABLE HISSTORY MODIFY PARTITION AGE2018 UNUSABLE LOCAL INDEXES;
2) ALTER SESSION SET skip_unusable_indexes = TRUE;
3) insert /*APPEND*/ into hisstory
4) ALTER TABLE HISSTORY MODIFY PARTITION AGE2018 REBUILD UNUSABLE LOCAL INDEXES;

Как то так. )
...
Рейтинг: 0 / 0
Копирование данных в секционную таблицу
    #39818881
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RichardIVОбъем данных планируется ~ 200 млн строк.
Да как-то не особо много по нынешним временам...
Такой объем без особых проблем должен влезать и без отключения индексов, что позволит не вводить технологическое окно и, таким образом, повысить доступность системы.
Если есть непременное желание влепить все 200 лямов одной транзакцией, то обратите внимание на достаточность доступного объема TEMP (требуется для index maitenance).
Если есть возможность разделить загрузку на пакеты по 10-100 тыс. записей, то это облегчит жизнь.
Рассмотрите вариант загрузки direct или direct parallel
...
Рейтинг: 0 / 0
Копирование данных в секционную таблицу
    #39818890
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andrey_anonymousRichardIVОбъем данных планируется ~ 200 млн строк.
Да как-то не особо много по нынешним временам...
... в зависимости от имеющейся политики резервного копирования, наличия standby и какой-либо интеграции можно дополнительно рассмотреть проведение загрузки в nologging с немедленным созданием резервной копии по окончании загрузки.
...
Рейтинг: 0 / 0
Копирование данных в секционную таблицу
    #39818902
RichardIV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
andrey_anonymous,
Загрузку планирую делать по месяцам, так как надо еще и дубли удалить.
...
Рейтинг: 0 / 0
Копирование данных в секционную таблицу
    #39818917
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RichardIVandrey_anonymous,
Загрузку планирую делать по месяцам, так как надо еще и дубли удалить.
Я исходил из предположения, что 200 лямов - это один раздел.
Если означенные числа - общий объем, то вообще не берите в голову, грузите в пакетном режиме и ни о чем не беспокойтесь.
Дубли - отдельный вопрос.
Если их мало, то проще удалить прямо на месте.
Если их доля значительна - то имеет смысл грузить через промежуточную стейджинговую таблицу.

Если предполагаются дубли по уникальным индексам, то для сценария прямой загрузки в целевую таблицу можно сделать неуникальные индексы, а после зачистки включить по этим индексам uk/pk constraints.
...
Рейтинг: 0 / 0
Копирование данных в секционную таблицу
    #39819074
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RichardIV HISSTORY О ком такой графоманский рассказ?
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Копирование данных в секционную таблицу
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]