Для повторного разбиения таблиц как исходная структура таблицы, так и новая структура таблицы должны храниться в памяти одновременно. Для структур целевой таблицы данные будут вставлены в дельта-хранилища, а затем объединены, что снова потребляет память.
Для повышения производительности перераспределение происходит в параллельных потоках, которые, как вы можете догадаться, снова используют дополнительныеПамять.
Руководство по администрированию предоставляет подсказку для уменьшения количества параллельных потоков:
Параллелизм и потребление памяти
Операции разбиения занимают большой объем памяти,Чтобы уменьшить потребление памяти, можно настроить количество используемых потоков.
Вы можете изменить значение по умолчанию параметра split_threads
в разделе partitioning
файла конфигурации indexserver.ini
.
По умолчанию используется 16 потоков. В случае параллельного раздела / слияния отдельные операции используют общее количество настроенных потоков для каждого хоста. Каждая операция занимает по крайней мере один поток.
Итак, это онлайн-опция для переразметки, если в вашей системе недостаточно памяти для параллельных потоков.
В качестве альтернативы вы можете рассмотретьавтономное повторное разбиение, которое будет включать в себя экспорт таблицы (как CSV!), усечение (!) таблицы, изменение разбиения на теперь пустой таблице и повторный импорт данных.
Обратите внимание, что я написал«усекать», так как это сохранит все привилегии и ссылки на таблицу (представления, синонимы, роли и т. д.), которые будут потеряны, если вы удалите и заново создадите таблицу.