месяцам, можно ли эту непартицированную таблицу подключить как default партицию и затем из неё переместить данные по партициям?
нужно больше деталей. как минимум тип партиционирования, колонка и какие партиции нужны
Тип поля — timestamp with time zone Тип партицирования по этому полю PARTITION BY RANGE Партиции по месяцу Не хочется руками сливать данные, думаю как побыстрее перенести данные из одной большой таблицы в партиции.
не… проще сделать так: - создать новую таблицу с другим именем и партиционированием, но без партиций в транзакции: - переименовать старую таблицу во что-то - переименовать новую (паритционированную) как надо - подцепить старую FOR VALUES FROM (MINVALUE) TO (2020-12-01) (например)
Большое спасибо, потестирую. Не хочется софт править под новое имя таблицы и хочется раскидать хотя бы несколько свежих месяцев для оптимизации. Но вообще идея хорошая, так действительно будет быстрее всего.
вам не нужно новое имя таблицы. вы в транзакции переименовываете её: BEGIN; ALTER TABLE tab RENAME TO tab_2020; ALTER TABLE tab_part RENAME TO tab; ALTER TABLE tab ATTACH PARTITION tab_2020 FOR VALUES FROM (minvalue) TO (2020-12-01); COMMIT;
Обсуждают сегодня