如何查看针对Oracle执行的查询? [英] How can I see queries that are executed against Oracle?
本文介绍了如何查看针对Oracle执行的查询?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我需要查看发送给Oracle的查询以执行它们.有人可以给我有关如何执行此操作的具体详细说明吗?
I need to see the queries that are being sent to Oracle to execute them. Can someone give me specific detailed instructions on how to do this ?
推荐答案
如果要查看来自特定用户的查询,可以使用此方法(假设您具有查询v$session
和v$sqlarea
的权限(通常通过SELECT_CATALOG_ROLE
)
If you want to see the queries from a specific user, you can use this (assuming you have privileges to query v$session
and v$sqlarea
(usually through 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'
在系统中用适当的用户名替换SCOTT
Replace SCOTT with the appropriate username in your system
输出:
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'
这篇关于如何查看针对Oracle执行的查询?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文