sql >> Databáze >  >> RDS >> Oracle

Denní dělení databáze Oracle DB

zde je příklad, jak to udělat na Oracle 11g a funguje to velmi dobře. Na Oracle 10g jsem to nezkoušel, můžete to zkusit.

Toto je způsob, jak vytvořit tabulku s denními oddíly:

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;

Jak vidíte výše, Oracle automaticky vytvoří samostatné oddíly pro každý odlišný partition_day po 1. lednu 2000. Záznamy, jejichž partition_date je starší než toto datum, budou uloženy v oddílu nazvaném 'part_01'.

Oddíly tabulky můžete monitorovat pomocí tohoto příkazu:

SELECT * FROM user_tab_partitions WHERE table_name = 'XXX';

Poté, když budete chtít smazat některé oddíly, použijte následující příkaz:

ALTER TABLE XXX DROP PARTITION AAAAAA UPDATE GLOBAL INDEXES

kde 'AAAAAA' je název oddílu.

Doufám, že vám to pomůže!



  1. Zkontrolujte, zda v Oracle existuje tabulka

  2. Jaké je očekávané chování pro více funkcí vracejících sadu v klauzuli SELECT?

  3. Odříznutí řetězce během dotazu na vložení

  4. Indexy MySQL – jaké jsou nejlepší postupy?