Bonjour,
j'ai une table partitionnée par date (range) qui est chargée chaque jour avec 8 millions de lignes (on garde que dix partitions ), elle possède une PK fonctionnelle composée de 7 colonnes mais l'équipe java veut avoir une "clé" technique (pas une séquence Oracle) car c'est plus facile pour eux.

j'ai utilisé la fonction DBMS_SQLHASH.GETHASH pour générer une clé de hachage pour chaque ligne mais ca plombe les perf du traitement de chargement (1h 30 min de plus a chaque chargement).


j'ai ajouter cet update à la fin du chargement (j'ai essayé bulk/forall mais c pas mieux) :


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
UPDATE /*+ PARALLEL (mouvement,8) */  mouvement
SET
    cle_hash = DBMS_SQLHASH.GETHASH('Select '''||col1||','||col2||','||col3||','||col4||','||col5|','|||col6||','||col7||''' From dual',2)
where 
    rdt = clé de partition;

Avez-vous une autre solution a me proposer ou des suggestion sur améliorer ma solution ?

Merci pour votre aide