Ho bisogno di vedere le query che vengono inviate a Oracle per eseguirle. Qualcuno può darmi istruzioni specifiche dettagliate su come farlo?Come posso vedere le query eseguite contro Oracle?
11
A
risposta
3
Questa query mostrerà le query che sono attualmente in esecuzione:
select sql_text from v$sqlarea where users_executing > 0;
14
Se volete vedere le query da un utente specifico, è possibile utilizzare questo (supponendo che si dispone dei privilegi per interrogare v$session
e v$sqlarea
(di solito attraverso SELECT_CATALOG_ROLE
)
SELECT sess.sid,
sess.username,
sqla.optimizer_mode,
sqla.hash_value,
sqla.address,
sqla.cpu_time,
sqla.elapsed_time,
sqla.sql_text
FROM v$sqlarea sqla, v$session sess
WHERE sess.sql_hash_value = sqla.hash_value
AND sess.sql_address = sqla.address
AND sess.username = 'SCOTT'
Sostituire SCOT T con il nome utente appropriato nel sistema
uscita:
544 SCOTT ALL_ROWS 2004330732 07000001064088E8 89391 131836 SELECT sess.sid, sess.username,
sqla.optimizer_mode, sqla.h
ash_value, sqla.address, s
qla.cpu_time, sqla.elapsed_time,
sqla.sql_text FROM v$sqlarea sq
la, v$session sess WHERE sess.sql_hash_
value = sqla.hash_value AND sess.sql_
address = sqla.address AND sess.usern
ame = 'SCOTT'
eccellente, mi puoi dare un esempio di output di quella query? Poiché non ho privilegi, ho chiesto al team DBA di darmi l'output e in pratica mi hanno dato qualcosa che somigliava più al piano di esecuzione della query, che non è quello che voglio. Incollare un campione di output per favore, così posso sapere se le autorizzazioni esigenti sarebbero utili o meno per me –
Ho un database in cui sono completo admin, ma dice che v $ session non esiste. Come lo risolvo ? –
Per amministratore completo intendi che hai il ruolo DBA e stai eseguendo la query come utente con questo ruolo? In caso contrario, accedere come SYS ed eseguire GRANT SELECT ON v $ session TO; SELEZIONA GRANT SU v $ sqlarea A . –
bhangm