sql >> Base de Datos >  >> RDS >> Oracle

Particionamiento diario de Oracle DB

aquí hay un ejemplo de cómo hacerlo en Oracle 11g y funciona muy bien. No lo he probado en Oracle 10g, puedes probarlo.

Esta es la forma, cómo crear una tabla con particiones diarias:

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;

Como puede ver arriba, Oracle creará automáticamente particiones separadas para cada día_partición distinto después del 1 de enero de 2000. Los registros, cuya fecha_partición es anterior a esta fecha, se almacenarán en la partición denominada 'part_01'.

Puede monitorear las particiones de su tabla usando esta declaración:

SELECT * FROM user_tab_partitions WHERE table_name = 'XXX';

Luego, cuando desee eliminar algunas particiones, use el siguiente comando:

ALTER TABLE XXX DROP PARTITION AAAAAA UPDATE GLOBAL INDEXES

donde 'AAAAAA' es el nombre de partición.

¡Espero que te ayude!