Создание ежедневного раздела Oracle - PullRequest
0 голосов
/ 22 февраля 2019

Создание раздела оракула для таблицы на каждый день.

ALTER TABLE TAB_123 ADD PARTITION PART_9999 VALUES LESS THAN  ('0001') TABLESPACE TS_1

Здесь я получаю сообщение об ошибке, поскольку значение уменьшается как 0001 в качестве нижней границы.

Ответы [ 2 ]

0 голосов
/ 22 февраля 2019

Oracle может автоматически создавать разделы с помощью параметра PARTITION BY RANGE.

Пример DDL, при условии, что ключом раздела является столбец my_date_column:

create table TAB_123 
    (  ... ) 
    partition by range(my_date_column) interval(numtoyminterval(1,'day'))
    ( partition p_first values less than (to_date('2010-01-01', 'yyyy-mm-dd')) tablespace ts_1)
;

С этим наборомНа месте Oracle при необходимости создаст раздел на лету, когда вы вставите данные в таблицу.Обычно хорошей идеей является создание раздела по умолчанию, как показано выше.

0 голосов
/ 22 февраля 2019

Это соглашение об именах (последняя цифра года плюс номер дня) не поддерживает хранение данных более чем за десять лет.Может быть, вы думаете, что это не имеет значения, но я знаю базы данных, которые находятся в их второе десятилетие.Быть оптимистом!

Кроме того, этот ключ практически бесполезен для запросов.Большинство запросов к разделенным таблицам хотят получить выгоду от исключения разделов.Но это только работает, если запрос использует то же значение, что и ключ раздела.Разработчики действительно не захотят приводить дату в формат YDDD каждый раз, когда пишут выбор в таблицу.

Итак.Используйте фактическую дату для определения ключа раздела и, следовательно, диапазона.Также для наименования раздела, если это так важно.

ALTER TABLE TAB_123 
ADD PARTITION P20200101 VALUES LESS THAN  (date '2020-01-02') TABLESPACE TS_1
/

Обратите внимание, что диапазон определяется меньше, чем на следующий день.В противном случае дата имени раздела не будет совпадать с датой записей в реальном разделе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...