Temps d'exécution requête Oracle sql trop Longue

Eléphanteau du PHP | 11 Messages

10 juil. 2012, 19:05

Bonjour tout le monde,
Je travaille sur Base oracle, depuis peu ma rêquete de récupération de logs est très longue.
Table Log : 92 1506 enregistrements.
Pouvez-vous me donner une piste?
Voici ma requête:

SELECT to_char(b.DATEACTION,'HH24:MI:SS') as HEURE, b.*
FROM (
SELECT a.*, ROWNUM AS NUMERO
FROM ( SELECT l.*
FROM LOG l
WHERE to_char(DATEACTION,'YYYYMM') >= to_char(to_date(date1,'MM/YYYY'),'YYYYMM')
AND to_char(DATEACTION,'YYYYMM') <= to_char(to_date(date2,'MM/YYYY'),'YYYYMM')

ORDER BY ID DESC,DATEACTION DESC
) a
)b
WHERE NUMERO BETWEEN rowMIN and rowMAX

Comment optimiser cette requête?

Merci d'avance

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

10 juil. 2012, 20:11

salut,

sans la structure de la table et ce que tu souhaite on ne peux pas tester :)

pourquoi 3 requêtes imbriquées ?

WHERE to_char(DATEACTION,'YYYYMM') >= to_char(to_date(date1,'MM/YYYY'),'YYYYMM')
AND to_char(DATEACTION,'YYYYMM') <= to_char(to_date(date2,'MM/YYYY'),'YYYYMM')


Pourquoi ne pas simplement comparer les dates ?

si dateaction n'est pas un champ date c'est une erreur :)

@+
Il en faut peu pour être heureux ......