Temps d'éxécution requête Oracle Sql trop longue

Temps d'éxécution requête Oracle Sql trop longue - SQL/NoSQL - Programmation

Marsh Posté le 10-07-2012 à 18:58:12    

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

Reply

Marsh Posté le 10-07-2012 à 18:58:12   

Reply

Marsh Posté le 11-07-2012 à 19:55:09    

Une petite amélioration consisterait à simplifier :
 
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')  
 
par :
 
WHERE DATEACTION >= to_date(date1,'MM/YYYY')
   AND DATEACTION <= to_date(date2,'MM/YYYY')

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed