Bonjour.
Dans le cadre d'une application, je dois réaliser une requête de type group by sur une table assez volumineuse.

La requete ressemble donc a cela :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
SELECT COUNT (*), B
FROM TABLE
WHERE T_DATE BETWEEN ? AND ?
AND T_SITE IN (?,?,?,.......)
GROUP BY B
Je cherche donc le nombre de lignes ou le site est dans les valeurs de la liste, et ce pour chacun des sites spécifiées, le tout dans les dates indiqués (c'est une table de traces)

EDIT : il peut arriver que dans T_SITE IN (?,?,?...) , il y aie 400 valeurs différentes !

La table est assez grande (15 000 000 lignes). La requête prend a peu prés deux minutes, et ce n'est pas acceptable pour le client.

Je travaille en Oracle 9i, et je cherche un moyen de l'optimiser (index, réécriture de la requete...) auriez vous des idées ?

Merci d'avance de votre aide.