sql >> Databasteknik >  >> RDS >> Oracle

Hur visar jag pågående processer i Oracle DB?

Jag misstänker att du bara skulle vilja ta några kolumner från V$SESSION och SQL-satsen från V$SQL. Förutsatt att du vill utesluta de bakgrundsprocesser som Oracle själv kör

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 yttre anslutningen är för att hantera de sessioner som för närvarande inte är aktiva, förutsatt att du vill ha dem. Du kan också hämta kolumnen sql_fulltext från V$SQL som kommer att ha den fullständiga SQL-satsen snarare än de första 1000 tecknen, men det är en CLOB och så troligen lite mer komplicerad att hantera.

Realistiskt sett vill du förmodligen titta på allt som är tillgängligt i V$SESSION eftersom det är troligt att du kan få mycket mer information än vad SP_WHO tillhandahåller.



  1. Integrera ServiceNow med Oracle Identity Cloud Service (IDCS)

  2. PostgreSQL Logical Replication Gotchas

  3. En rapports egenskaper

  4. Välj grupp med rader som matchar alla objekt i en lista