Oracle: диапазон — раздел / подраздел интервала диапазона

#oracle #table-partitioning

#Oracle #разделение таблиц на разделы #разбиение таблицы

Вопрос:

Мне нужно создать таблицу с разделением на диапазоны:

т.е.

     create table table1(item_id number(22), sys_entry_date timestamp default sysdate)
     partition by range(sys_entry_date) interval(NUMTOYMINTERVAL(1,'YEAR'))
   (partition p01 values less than (to_date('31-DEC-2016','DD-MON-YYYY')));
  

Несколько вставок для демонстрации:

 ---Should lie in the main partition's main subpartition (crnt_part) since the it's part of the latest records received.

insert into table1 values(1, sysdatetime);

---Should lie in the main partition's subpartition of default section (prev_part) since the it's 2 days older
insert into table1 values(1, sysdatetime-3);
insert into table1 values(1, sysdatetime-4);

---Would help us identify the yearly partitions (suggestive)
insert into table1 values(2, sysdatetime-1500);
insert into table1 values(3, sysdatetime-1200);
insert into table1 values(4, sysdatetime-800);
insert into table1 values(1, sysdatetime-400);
  

Я хочу добиться выполнения этого:

  1. Ежегодное разбиение;
  2. В течение года подраздел, основанный на sys_entry_date, который 2.a. последние 2 дня хранится в crnt_part 2.b. оставшийся в разделе по умолчанию, возможно, в prev_part

Признателен, если кто-нибудь может помочь в этом конкретном контексте.

Комментарии:

1. если вы можете указать количество строк; сгруппированных по годам и месяцам, я смогу предложить лучшее предложение по разделению

2. Не уверен, какие именно детали вам нужны, но добавил некоторые инструкции insert, чтобы сделать сценарий более понятным.

3. Где в этом участвует разделение на разделы? Или вы хотите, чтобы каждый раздел месяца был разделен на два подраздела? Не похоже, что у вас будут какие-либо процессы, которые выиграют от этой схемы.

4. Если ваш тип данных столбца sys_entry_date равен, вам также следует использовать SYSTIMESTAMP вместо SYSDATE , а также для интервала раздела a TIMESTAMP было бы лучше.

5. Вы могли бы использовать интервал INTERVAL '2' DAY . Затем с помощью 2-дневного задания объедините старые ежедневные разделы в годовой раздел.