Bonjour,
Nous avons dans notre base une table sur laquelle ont été définis des index bitmap. Jusque ce jour la mise à jour de cette table se fait 2 fois par mois : une fois par un calcul provisoire qui insère des données, une seconde par un calcul définitif consistant à supprimer les données provisoire du mois correspondant puis à les recalculer. Ce fonctionnement ne pose pas de problème.
Nous mettons en place un mécanisme de purge basé sur un critère de date. Cette purge au premier lancement, supprime les données sur plusieurs années. Une fois la purge jouée dans l'environnement de recette, la procédure de suppression puis ré-insertion de données s'est traduite par une erreur :
ORA-01654 : impossible d'étendre l'index ... dans le tablespace ...
Afin de libérer de la place nous avons reconstruit l'ensemble des index bitmap par la commande alter index ... rebuild.
L'espace libre passe alors de 2,6% à 73%.
Hélas, la relance de l'insertion provoque à nouveau la même erreur ORA-01654.
Sur notre serveur de développement nous observons le même comportement : l'insertion entraine un accroissement exponentiel des index bitmap (avec ou non l'erreur ORA-01654 selon le mois de données choisi).
Pourquoi une opération d'insertion de données qui fonctionnait avant la purge massive et/ou le rebuild ne fonctionnerait plus ensuite ?
Quelles solutions pouvons-nous mettre en place ?
Partager