Bonjour,
j'utilise oracle 10g; et je rencontre des problèmes de performances avec la requete que j'écris pour résoudre mon problème. J'essaye de trouver un autre moyen d'aborder le problème (j'ai essayé les requêtes analytiques mais je ne sais pas si elles sont adaptées dans mon cas) : je possède une table où sont logués à des dates régulières des évènements par type d'évènement. Pour chaque date je possède donc :
un numéro de génération du log (séquence tournante sur 0-999), un identifiant d'évenement , le code du type d'évènement, soit la table suivante :
J'écris une requête devant affichés pour chaque code évènement le dernier numéro de génération de log d'évènement , j'ai donc quelquechose comme :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 Table JRL_EVT : id_evt code_evt (fk d'une autre table) num_gen_evt date_evt
Mais je rencontre alors des problèmes de performances : la requête met 4-5 secondes (la table comprend 300 000 lignes) pour aboutir; je voulais savoir si je pouvais éviter la sous requête pour optimiser l'ensemble ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 select code_evt,num_gen_evt,date_evt from JRL_EVT where (code_evt,date_evt) in ( select code_evt,max(date_evt) from JRL_EVT group by code_evt )
Merci pour toute réponse.
Partager