Bonjour,

Nous créons un nouvel index bitmap sur une table partitionnée par l'ordre sql
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
CREATE BITMAP INDEX RA5.RA5_VENTE_IDX30 ON RA5.RA5_VENTE
(CAT_CLIENT)
  INITRANS   2
  MAXTRANS   255
NOLOGGING
LOCAL
PARALLEL ( DEGREE 4 INSTANCES 1 )
/
Cet ordre crée les partitions d'index de même nom que celles de la table et dans les mêmes tablespaces que les partitions de la table.
Afin d'homogénéiser les noms des partitions d'index nous les renommons avec un ordre construit dynamiquement sous la forme :
'alter index RA5_VENTE_IDX30 rename partition '||cur.partition_name||' to '||nom_part
puis nous les reconstruisons dans le tablespace approprié par un ordre (construit lui aussi dynamiquement)
'alter index RA5_VENTE_IDX30 rebuild partition '||nom_part||' tablespace '||nom_tab;
sur notre base de développement tout se passe bien.
sur la base du client (contenant un peu plus de partitions et plus de données) le script sort en erreur ORA-01555: Snapshot trop vieux
Pour le moment nous ne voyons comme solution que :
  1. agrandir le tablespace undo
  2. modifier la valeur de UNDO_RETENTION
  3. écrire différement la création de cet index en générant dynamiquement le script de création précisant toutes les partitions à créer

Avez vous des explications sur la survenue de ORA-01555 sur des rebuild de partitions d'index ?
Avez-vous d'autres pistes qui permettraient de résoudre le problème ?
Est-il plus pertinent d'augmenter UNDO_RETENTION plutôt que la taille du tablespace undo ?