Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Como mostro processos em execução no Oracle DB?


Suspeito que você queira apenas pegar algumas colunas de V$SESSION e a instrução SQL de V$SQL. Supondo que você queira excluir os processos em segundo plano que o próprio Oracle está executando
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'

A junção externa é para lidar com as sessões que não estão ativas no momento, supondo que você as queira. Você também pode obter a coluna sql_fulltext do V$SQL, que terá a instrução SQL completa em vez dos primeiros 1000 caracteres, mas isso é um CLOB e provavelmente um pouco mais complicado de lidar.

Realisticamente, você provavelmente quer ver tudo o que está disponível em V$SESSION porque é provável que você possa obter muito mais informações do que SP_WHO fornece.