|
Копирование данных в секционную таблицу
|
|||
---|---|---|---|
#18+
У меня в БД хранятся данные в главной таблице за 15 лет. С целью оптимизации и т.п. создал отдельное табличное пространство, в нем разместил новую таблицу с партициями за каждый из годом, данные в этой таблице хранятся в сжатом виде. Индексы построены локальные. Все успешно перекопировал, индексы создал. Теперь встал вопрос о до-копировании данных за прошедший год в неё. За 2018 год секция пока пустая. Я правильно понимаю, что надо сначала отключить локальные индексы в данной секции, скопировать данные и перестроить локальные индексы? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.05.2019, 16:33 |
|
Копирование данных в секционную таблицу
|
|||
---|---|---|---|
#18+
Или индексы не отключать при копировании? Как правильно? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2019, 12:58 |
|
Копирование данных в секционную таблицу
|
|||
---|---|---|---|
#18+
RichardIV, достаточно пересоздать индексы, в статусе status='UNUSABLE', для своих партиций (alter index ... rebuild partition). Посмотреть статус и партицию индекса можно в представлении user_ind_partitions. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.05.2019, 15:56 |
|
Копирование данных в секционную таблицу
|
|||
---|---|---|---|
#18+
RichardIVИли индексы не отключать при копировании? Как правильно? Однозначного ответа нет. Зависит, как минимум, от объема загрузки и наличия технологического окна. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.05.2019, 16:24 |
|
Копирование данных в секционную таблицу
|
|||
---|---|---|---|
#18+
Объем данных планируется ~ 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; Как то так. ) ... |
|||
:
Нравится:
Не нравится:
|
|||
27.05.2019, 16:30 |
|
Копирование данных в секционную таблицу
|
|||
---|---|---|---|
#18+
RichardIVОбъем данных планируется ~ 200 млн строк. Да как-то не особо много по нынешним временам... Такой объем без особых проблем должен влезать и без отключения индексов, что позволит не вводить технологическое окно и, таким образом, повысить доступность системы. Если есть непременное желание влепить все 200 лямов одной транзакцией, то обратите внимание на достаточность доступного объема TEMP (требуется для index maitenance). Если есть возможность разделить загрузку на пакеты по 10-100 тыс. записей, то это облегчит жизнь. Рассмотрите вариант загрузки direct или direct parallel ... |
|||
:
Нравится:
Не нравится:
|
|||
27.05.2019, 16:39 |
|
Копирование данных в секционную таблицу
|
|||
---|---|---|---|
#18+
andrey_anonymousRichardIVОбъем данных планируется ~ 200 млн строк. Да как-то не особо много по нынешним временам... ... в зависимости от имеющейся политики резервного копирования, наличия standby и какой-либо интеграции можно дополнительно рассмотреть проведение загрузки в nologging с немедленным созданием резервной копии по окончании загрузки. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.05.2019, 16:45 |
|
Копирование данных в секционную таблицу
|
|||
---|---|---|---|
#18+
andrey_anonymous, Загрузку планирую делать по месяцам, так как надо еще и дубли удалить. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.05.2019, 16:59 |
|
Копирование данных в секционную таблицу
|
|||
---|---|---|---|
#18+
RichardIVandrey_anonymous, Загрузку планирую делать по месяцам, так как надо еще и дубли удалить. Я исходил из предположения, что 200 лямов - это один раздел. Если означенные числа - общий объем, то вообще не берите в голову, грузите в пакетном режиме и ни о чем не беспокойтесь. Дубли - отдельный вопрос. Если их мало, то проще удалить прямо на месте. Если их доля значительна - то имеет смысл грузить через промежуточную стейджинговую таблицу. Если предполагаются дубли по уникальным индексам, то для сценария прямой загрузки в целевую таблицу можно сделать неуникальные индексы, а после зачистки включить по этим индексам uk/pk constraints. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.05.2019, 17:44 |
|
|
start [/forum/topic.php?fid=52&msg=39818871&tid=1882460]: |
0ms |
get settings: |
7ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
35ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
41ms |
get tp. blocked users: |
1ms |
others: | 264ms |
total: | 378ms |
0 / 0 |