Как я могу разделить таблицу базы данных каждый месяц? - PullRequest
1 голос
/ 02 июля 2019

Каждый месяц нам приходится разбивать таблицу для транзакции за указанный месяц, и мы хотим автоматизировать этот процесс, я думаю об использовании crontab, но проблема заключается в том, что мне нужны некоторые параметры, такие как date и таблица разделов для этого.

Это сервер, на котором работает SunOS, и я не могу использовать оболочку, отличную от sh по умолчанию, что немного усложняет программирование сценария оболочки для выполнения запроса, но, тем не менее, это то, что я хочу.

Вот как мы разбиваем нашу таблицу:

ALTER TABLE SCHEME.TABLE ADD PARTITION "NAME_201905"  VALUES LESS THAN
(TO_DATE('2019-05-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN')) SEGMENT CREATION IMMEDIATE
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255
  COMPRESS FOR OLTP LOGGING
  STORAGE(INITIAL 8388608 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
  TABLESPACE "TABLESPACE";

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

1 Ответ

0 голосов
/ 03 июля 2019

создать или изменить таблицу, чтобы иметь интервальный раздел.Это требование будет выполнено автоматически.

Вы можете установить интервал часа, дня, недели, месяца или года.

каждый раз, когда поступают данные нового месяца, Oracle автоматически создает новый раздел.

...