Oracle
 sql >> Base de données >  >> RDS >> Oracle

Comment afficher les processus en cours d'exécution dans Oracle DB ?

Je suppose que vous voudriez simplement récupérer quelques colonnes de V$SESSION et l'instruction SQL de V$SQL. En supposant que vous souhaitiez exclure les processus d'arrière-plan qu'Oracle lui-même exécute

SELECT sess.process, sess.status, sess.username, sess.schemaname, sql.sql_text
  FROM v$session sess,
       v$sql     sql
 WHERE sql.sql_id(+) = sess.sql_id
   AND sess.type     = 'USER'

La jointure externe consiste à gérer les sessions qui ne sont pas actuellement actives, en supposant que vous les vouliez. Vous pouvez également obtenir la colonne sql_fulltext de V$SQL qui contiendra l'instruction SQL complète plutôt que les 1000 premiers caractères, mais c'est un CLOB et donc probablement un peu plus compliqué à gérer.

De manière réaliste, vous voudrez probablement examiner tout ce qui est disponible dans V$SESSION car il est probable que vous puissiez obtenir beaucoup plus d'informations que celles fournies par SP_WHO.