[Oracle] : top 10 des requêtes consommatrice de temps présentes en cache

Print Friendly, PDF & Email

La gestion du cache au niveau d’une base de données est primordial. Une bonne gestion permet de mettre en cache les requêtes les plus courantes de manière à servir le plus rapidement possible l’utilisateur (ou l’application).

Il est donc important de temps en temps de jeter un oeil pour savoir quelles requêtes sont présentes dans ce cache et surtout celles qui y consomment du temps. Après avoir listé ces requêtes, il peut être intéressant de faire un explain plan et de les analyser pour voir comment elles pourraient être optimisées (par exemple par des index ou en segmentant une table…).

Voici donc une requête sql qui va vous permettre de lister ces top requêtes à retravailler ou à analyser :

SELECT sql_id,child_number,sql_text, elapsed_time 
  FROM (SELECT sql_id, child_number, sql_text, elapsed_time, cpu_time,
               disk_reads,
               RANK () OVER (ORDER BY elapsed_time DESC) AS elapsed_rank
          FROM v$sql)
 WHERE elapsed_rank <= 10;

Une vue dynamique oracle y est intérogée :

  • v$sql : qui contient les requêteset les informations relatives à celles-ci.

V$SQL contient énormément de champs, je vous invite à vous rendre sur la page d’oracle prévue à cet effet.

Découvrez  [Oracle] : Reconstruire les index d'un user/schéma