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 :
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
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
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
)
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 ?

Merci pour toute réponse.