her er et eksempel på, hvordan man gør det på Oracle 11g, og det fungerer meget godt. Jeg har ikke prøvet det på Oracle 10g, du kan prøve det.
Sådan opretter du en tabel med daglige partitioner:
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;
Som du kan se ovenfor, vil Oracle automatisk oprette separate partitioner for hver særskilt partition_day efter 1. januar 2000. Records, hvis partition_date er ældre end denne dato, vil blive gemt i en partition kaldet 'part_01'.
Du kan overvåge dine tabelpartitioner ved hjælp af denne erklæring:
SELECT * FROM user_tab_partitions WHERE table_name = 'XXX';
Når du bagefter vil slette nogle partitioner, skal du bruge følgende kommando:
ALTER TABLE XXX DROP PARTITION AAAAAA UPDATE GLOBAL INDEXES
hvor 'AAAAAA' er partionsnavn.
Jeg håber, det vil hjælpe dig!