le but : créer une table d'historique AH à partir de la table A qui contient plus de 20 millions de lignes ainsi qu'une bonne poignée d'indexes mal foutues (mais ça c'est une autre histoire, malheureusement). Ensuite suppression dans la table source des enregistrements historisés pour arrive à une taille de 3 millions de lignes.
J'aimerais bien sûr que ça prennent le moins de temps possible en essayant de garder la bd et la table A accessible.
Voici ce que j'ai l'intention de faire :
- Désactivation des contraintes de la table A
- Drop des indexes sur la table A sauf celui sur la clef primaire A_ID et sur la champ date : A_date
- CREATE table AH AS select * from A where A_date < to_date('01/01/2007','DD/MM/YYYY');
- delete A where A_Date < to_date('01/01/2007','DD/MM/YYYY');
- recréation des indexes
- réactivation des contraintes
Je serais bien passé par DataPump pour sauvegarder ma table A puis recréer un table AH identique mais je n'ai pas trouver de possibilité de faire un remap_tables, malheureusement...
Si vous avez des propositions plus intelligentes ou des optimisations à apporter, n'hésitez pas.
[EDIT]JE SUIS EN 10G...
Partager