Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Particionamento diário do banco de dados Oracle


aqui está um exemplo de como fazer isso no Oracle 11g e funciona muito bem. Eu não tentei no Oracle 10g, você pode tentar.

Este é o caminho, como criar uma tabela com partições diárias:
CREATE TABLE XXX (
    partition_date   DATE,
  ...,
  ...,
)
PARTITION BY RANGE (partition_date)
INTERVAL (NUMTODSINTERVAL(1, 'day'))
(
   PARTITION part_01 values LESS THAN (TO_DATE('2000-01-01','YYYY-MM-DD'))
)
TABLESPACE  MY_TABLESPACE
NOLOGGING;

Como você pode ver acima, o Oracle criará automaticamente partições separadas para cada partição_dia distinta após 1º de janeiro de 2000. Os registros, cuja data_partição for anterior a esta data, serão armazenados na partição chamada 'part_01'.

Você pode monitorar suas partições de tabela usando esta instrução:
SELECT * FROM user_tab_partitions WHERE table_name = 'XXX';

Depois, quando você quiser excluir algumas partições, use o seguinte comando:
ALTER TABLE XXX DROP PARTITION AAAAAA UPDATE GLOBAL INDEXES

onde 'AAAAAA' é o nome da partição.

Espero que ajude você!