Oracle
 sql >> Database >  >> RDS >> Oracle

Partizionamento giornaliero di Oracle DB

ecco un esempio di come farlo su Oracle 11g e funziona molto bene. Non l'ho provato su Oracle 10g, puoi provarlo.

Questo è il modo, come creare una tabella con partizioni giornaliere:

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;

Come si vede sopra, Oracle creerà automaticamente partizioni separate per ogni distinto partition_day dopo il 1° gennaio 2000. I record, la cui partition_date è precedente a questa data, verranno archiviati in una partizione denominata 'part_01'.

Puoi monitorare le partizioni della tua tabella usando questa istruzione:

SELECT * FROM user_tab_partitions WHERE table_name = 'XXX';

Successivamente, quando desideri eliminare alcune partizioni, utilizza il seguente comando:

ALTER TABLE XXX DROP PARTITION AAAAAA UPDATE GLOBAL INDEXES

dove 'AAAAAA' è il nome della partizione.

Spero che ti aiuterà!