Bonsoir a tous
CentOs et Oracle 10G standard edition.
N'ayant pas le Enterrprise edition, je ne peux pas utiliser les partitions. Donc nous avons des tables super remplies... Nous voudrions degager des rows pour alleger les requêtes.
Mais, vue que la base est en production es les tables en question sont soumises a des updates, insert et select perpetuel (OTLP), je me demande quelle est la meilleur solution.
J'ai pensé a celles ci:
1 creer una table _hist et laisser dans la table master les 2 dernieres années. Dans la table _hist tout le reste.
le probleme c'est que le delete est telement couteux que ça va penaliser le fonctionnement. (j'ai aucune fenêtre d'arrêt).
par ailleurs apres le delete j'ai des blocks asignés mais vide, donc je dois utiliser dbms_redefinition, mais je perds les index pendant le procesus et la c'est la catastrophe.
2 Au lieu de faire une table _hist j'ai pensé a creer une nouvelle table avec les 2 dernieres années, creer les index et a la fin faire un RENAME
rename tableA to tablaA_orig
rename table_TMP to tablaA
mais voila, pendant le rename, j'ai peur ... si pile a ce moment une transaction fait un insert ou un delete.
Et puis j'ai pensé utiliser un synonym, faire pointer le synonym a l'autre table lorsqu'elle est prete.
Qu'en pensez vous?
D'avance merci
Partager