sql >> Database >  >> RDS >> Oracle

Oracle DB dagelijkse partitionering

hier is een voorbeeld hoe het te doen op Oracle 11g en het werkt heel goed. Ik heb het niet geprobeerd op Oracle 10g, je kunt het proberen.

Dit is de manier om een ​​tabel met dagelijkse partities te maken:

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;

Zoals u hierboven ziet, maakt Oracle na 1 januari 2000 automatisch afzonderlijke partities voor elke afzonderlijke partitiedag. De records waarvan de partitiedatum ouder is dan deze datum, worden opgeslagen in de partitie met de naam 'part_01'.

U kunt uw tabelpartities controleren met deze verklaring:

SELECT * FROM user_tab_partitions WHERE table_name = 'XXX';

Als u daarna enkele partities wilt verwijderen, gebruikt u het volgende commando:

ALTER TABLE XXX DROP PARTITION AAAAAA UPDATE GLOBAL INDEXES

waarbij 'AAAAAA' de naam van de partitie is.

Ik hoop dat het je zal helpen!



  1. Hoe te repareren, 'PHP' maken, in Mac OS X (10.9.4)?

  2. In navolging van mysqli-query's

  3. SqlAlchemy TIMESTAMP 'bij update' extra

  4. mysql-python sortering probleem:hoe unicode datatype te forceren?