Проблема :
Интервальное разбиение не поддерживается на уровне подразделов.
То же самое относится к автоматическому разбиению списка - это также не поддерживается. Таким образом, вы не можете решить эту проблему с помощью интервального автоматического разбиения. Поэтому, что бы вы ни делали, вам нужно будет выполнить обслуживание подразделов, чтобы разделить значения.
Если ваша цель - минимизировать (под) обслуживание разделов, вам может быть лучше использовать секционированную таблицу с интервальным списком. С разделом по умолчанию для значений списка.
Вы можете изменить шаблон подраздела в любое время. Это определяет, какие подразделы база данных создает при добавлении нового раздела верхнего уровня.
Например, это создает таблицу интервального списка:
create table partitionedtable (
id number,
partitionkey number,
created date
)
partition by range (created) interval (numtodsinterval(1,'day'))
subpartition by list (partitionkey)
subpartition template (
subpartition p1 values ( 1 ),
subpartition pdef values ( default )
) (
partition p2000 values less than ( date'2019-01-01' )
);
insert into partitionedtable values ( 1, 1, date'2019-01-02' );
insert into partitionedtable values ( 1, 2, date'2019-01-02' );
Значение 2 помещается в подраздел по умолчанию.
Вы обнаружите это и обновите шаблон, добавив в него подраздел:
alter table partitionedtable
set subpartition template (
subpartition p1 values ( 1 ),
subpartition p2 values ( 2 ),
subpartition pdef values ( default )
);
insert into partitionedtable values ( 1, 1, date'2019-01-03' );
insert into partitionedtable values ( 1, 2, date'2019-01-03' );
select partition_name, subpartition_name, high_value
from user_tab_subpartitions;
PARTITION_NAME SUBPARTITION_NAME HIGH_VALUE
P2000 P2000_P1 1
P2000 P2000_PDEF default
SYS_P772 SYS_SUBP771 default
SYS_P772 SYS_SUBP770 1
SYS_P776 SYS_SUBP773 1
SYS_P776 SYS_SUBP774 2
SYS_P776 SYS_SUBP775 default
Новый раздел (SYS_P776) имеет подраздел со значением 2. Существующие разделы не изменены. Вам нужно разделить SYS_P772, если вы хотите, чтобы строки со значением 2 в их собственном подразделе были здесь.
Предполагая, что созданная => дата вставки означает, что вам нужно только разделить подразделы для новых ключей разделов между их первой вставкой и датой изменения шаблона.
Принимая во внимание, что с автоматическими диапазонами разделов для каждого нового ключа раздела вам нужно управлять новыми подразделами даты.
Однако, если перевернуть схему разбиения, есть и другие последствия. Поэтому проверьте, подходит ли это другим причинам для разделения (производительность запросов, архивация данных и т. Д.), Прежде чем идти дальше.