111 votes

Comment vérifier les requêtes de longue durée dans une base de données Oracle ?

Mon application, qui utilise une base de données Oracle, est lente ou semble s'être complètement arrêtée.

Comment puis-je savoir quelles sont les requêtes les plus coûteuses, afin d'approfondir mes recherches ?

2voto

Iain Hunter Points 663

Vous pouvez utiliser la vue v$sql_monitor pour trouver les requêtes qui s'exécutent pendant plus de 5 secondes. Cette fonction n'est peut-être disponible que dans les versions Enterprise d'Oracle. Par exemple, cette requête identifiera les requêtes qui s'exécutent lentement dans mon service TEST_APP :

select to_char(sql_exec_start, 'dd-Mon hh24:mi'), (elapsed_time / 1000000) run_time,
       cpu_time, sql_id, sql_text 
from   v$sql_monitor
where  service_name = 'TEST_APP'
order  by 1 desc;

Notez que elapsed_time est en microsecondes, donc / 1000000 pour obtenir quelque chose de plus lisible.

1voto

Ramki Points 341

Vous pouvez générer un rapport AWR (référentiel automatique des charges de travail) à partir de la base de données.

Exécuté à partir de la ligne de commande SQL*Plus :

SQL> @$ORACLE_HOME/rdbms/admin/awrrpt.sql

Lisez le document relatif à la façon de générer et de comprendre un rapport AWR. Il donnera une vue complète des performances de la base de données et des problèmes de ressources. Une fois que nous serons familiarisés avec le rapport AWR, il sera utile de trouver le meilleur SQL qui consomme des ressources.

De plus, dans l'interface utilisateur du 12C EM Express, nous pouvons générer un AWR.

0voto

akasha Points 26
select sq.PARSING_SCHEMA_NAME, sq.LAST_LOAD_TIME, sq.ELAPSED_TIME, sq.ROWS_PROCESSED, ltrim(sq.sql_text), sq.SQL_FULLTEXT
  from v$sql sq, v$session se
 order by sq.ELAPSED_TIME desc, sq.LAST_LOAD_TIME desc;

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X