performance d'un count avec jointures.
Bonjour,
Je me casse la tête depuis 1h sur ce problème et je ne parviens pas à trouver ce qui cloche... si vous pouviez m'aider :-)
Soit là requête ci dessous:
Code:
1 2 3 4 5 6
|
SELECT count(fd.file_id)
FROM FILE_DECLARATION fd
INNER JOIN PARTICIPATION_ACTOR pa on pa.file_id=fd.file_id
INNER JOIN ACTOR orderer ON orderer.id= pa.actor_id AND (upper(orderer.DENOM_LNM) LIKE 'A%' )
where (upper(fd.CITY_LNM) = 'GENT') AND(fd.POSTCODE = '9000') |
qui prend beaucoup trop de temps.
De fait, le résultat est 1400 et des poussières.
Si j'exécute la requête sans le count, on voit que la requête en elle même est très rapide (quelques millisecondes) mais que c'est le 'building output qui prend tout le temps.
Et j'imagine que quand on fait un count, c'est ce qui se passe côté Oracle (il effectue la requête rapidement, construit l'output et compte les lignes).
J'ai essayé plein de choses différentes, (count(*), count(1), ...) mais ça ne change rien :(
Y'aurait-il un moyen d'accélérer ce count?
ps: les indexes sont corrects (indexes sur upper, ...) mais, encore une fois, je ne pense pas que le problème soit là.
Merci :-)