Объединение секций
В некоторых случаях бывает необходимо объединить несколько небольших секций в одно большую секцию. К примеру, если:
- изначальный размер секции был сочтён слишком малым, и вы решили объединить эту секцию с какой-то другой секцией;
- необходимо периодически консолидировать устаревающие, наименее часто используемые секции.
Также, как и при разделении, вы можете объединять только те секции, для которых применено секционирование по диапазону или включающее диапазон подсекционирование. За один раз вы можете объединить до трёх секций. При этом секции должны быть указаны в порядке возрастания от наименьшей границы диапазона.
Во время процесса объединения OpenEdge объединяет первые секции с последней заданной. После объединения продолжает существовать только последняя указанная секция, остальные секции будут удалены.
Примечание. Процесс объединения секции это ресурсоёмкий процесс, который выполняется, как правило, в моменты наименьшей активности базы данных. Если процесс объединения был прерван, то вы можете запустить его повторно – операция продолжится с того места, на котором произошло прерывание.
Для объединения секций в онлайн применяется утилита PROUTIL PARTITIONMANGE MERGE:
proutil db-name -C partitionmanage merge table table-name partition partition-name1 partition partition-name2 [partition partition-name3 ] [useindex index-name] [recs numrecs]
Пример. Таблица Order секционирована по диапазону и имеет три секции: Order_2012, Order_2013 и Order_2014. Следующая команда PROUTIL PARTITIONMANAGE MERGE выполнит объединение в онлайн режиме трех секций в одну, используя индекс OrderDataLocalIdx, по 200 записей на транзакцию. После объединения, секции Order_2012 и Order_2013 будут удалены, останется только секция Order_2014.
proutil sportsco -C partitionmanage merge table order partition order_2012 partition order_2013 partition order_2014 useindex orderdatelocalidx recs 200