sql >> Base de Datos >  >> RDS >> Oracle

¿Cómo muestro los procesos en ejecución en Oracle DB?

Sospecho que solo querrá tomar algunas columnas de V$SESSION y la instrucción SQL de V$SQL. Suponiendo que desea excluir los procesos en segundo plano que Oracle mismo está ejecutando

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 combinación externa es para manejar aquellas sesiones que no están actualmente activas, suponiendo que las desee. También puede obtener la columna sql_fulltext de V$SQL que tendrá la instrucción SQL completa en lugar de los primeros 1000 caracteres, pero eso es un CLOB y probablemente sea un poco más complicado de manejar.

Siendo realistas, probablemente desee ver todo lo que está disponible en V$SESSION porque es probable que pueda obtener mucha más información de la que proporciona SP_WHO.