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

Hvordan viser jeg kørende processer i Oracle DB?

Jeg formoder, at du bare vil have fat i et par kolonner fra V$SESSION og SQL-sætningen fra V$SQL. Forudsat at du vil udelukke de baggrundsprocesser, som Oracle selv kører

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'

Den ydre joinforbindelse er til at håndtere de sessioner, der ikke er aktive i øjeblikket, forudsat at du ønsker dem. Du kan også hente kolonnen sql_fulltext fra V$SQL, som vil have den fulde SQL-sætning i stedet for de første 1000 tegn, men det er en CLOB og så sandsynligvis en smule mere kompliceret at håndtere.

Realistisk set vil du sikkert gerne se på alt, hvad der er tilgængeligt i V$SESSION, fordi det er sandsynligt, at du kan få meget mere information, end SP_WHO giver.



  1. SQLite CHECK begrænsninger

  2. Beregn tidsforskellen mellem to rækker

  3. Hvordan last_insert_rowid() virker i SQLite

  4. MySQL Vælg dato svarende til i dag