Oracle
 sql >> Database >  >> RDS >> Oracle

Come faccio a mostrare i processi in esecuzione in Oracle DB?

Sospetto che tu voglia solo prendere alcune colonne da V$SESSION e l'istruzione SQL da V$SQL. Supponendo che tu voglia escludere i processi in background che Oracle stesso sta eseguendo

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'

Il join esterno serve a gestire quelle sessioni che non sono attualmente attive, supponendo che tu le voglia. Potresti anche ottenere la colonna sql_fulltext da V$SQL che avrà l'istruzione SQL completa anziché i primi 1000 caratteri, ma si tratta di un CLOB e quindi probabilmente un po' più complicato da gestire.

Realisticamente, probabilmente vorrai guardare tutto ciò che è disponibile in V$SESSION perché è probabile che tu possa ottenere molte più informazioni di quelle fornite da SP_WHO.