Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Tägliche Oracle DB-Partitionierung

Hier ist ein Beispiel, wie man es auf Oracle 11g macht und es funktioniert sehr gut. Ich habe es nicht auf Oracle 10g ausprobiert, Sie können es versuchen.

So erstellen Sie eine Tabelle mit täglichen Partitionen:

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;

Wie Sie oben sehen, erstellt Oracle automatisch separate Partitionen für jeden einzelnen partition_day nach dem 1. Januar 2000. Die Datensätze, deren partition_date älter als dieses Datum ist, werden in der Partition mit dem Namen „part_01“ gespeichert.

Sie können Ihre Tabellenpartitionen mit dieser Anweisung überwachen:

SELECT * FROM user_tab_partitions WHERE table_name = 'XXX';

Wenn Sie danach einige Partitionen löschen möchten, verwenden Sie den folgenden Befehl:

ALTER TABLE XXX DROP PARTITION AAAAAA UPDATE GLOBAL INDEXES

wobei 'AAAAAA' der Partitionsname ist.

Ich hoffe, es wird Ihnen helfen!