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

Oracle DB daglig partitionering

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!



  1. MySQL-ækvivalent til Oracles SEQUENCE.NEXTVAL

  2. CAST(DATETIME AS DATE) over WHERE-sætning

  3. Snapshot af EBS-volumen brugt til replikering

  4. MySQL opdaterer et felt ved hjælp af info i anden tabel