Salut à tous,
J'ai la requete suivante qui retourne des doublons d'utilisateurs :
... mais elle est très lente notamment à cause des converts.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 select max(uti_cod) code, upper(max(uti_nom)) nom, initcap(max(uti_pre)) prenom, substr(uti_dat_naissance, 7, 2) || '/' || substr(uti_dat_naissance, 5, 2) || '/' || substr(uti_dat_naissance, 1, 4) date_naissance, count(*) nb_doublon from utilisateur group by convert(upper(uti_nom), 'US7ASCII'), convert(upper(uti_pre), 'US7ASCII'), uti_dat_naissance having count(*) >= 2 order by nom, prenom, date_naissance
Alors j'ai voulu créer des index sur les fonction convert :
A l'exécution les index ne sont pas utilisés alors j'ai ajouté le hint suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 create index idx_utilisateur_nom on utilisateur(convert(upper(uti_nom), 'US7ASCII')) create index idx_utilisateur_prenom on utilisateur(convert(upper(uti_pre), 'US7ASCII'))
Mais rien à faire, elle toujours aussi lente !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 select /*+ index(utilisateur idx_utilisateur_nom idx_utilisateur_prenom) */ ...
Quelqu'un pourrait-il m'aider ?
Partager