我来自Microsoft SQL世界,因此熟悉使用SQL Server Profiler和sp_whoisactive。现在,我正在使用带有Oracle DBMS的应用程序。
我希望能够打开跟踪,转到该应用程序并单击,然后停止跟踪并查看数据库级别发生了什么。即SQL执行的内容
通过搜索,我可以在TOAD中使用会话浏览器-但出现错误(必须声明SYS.DBMS_SYSTEM)。我知道我可以将此协定修复为http://technopark02.blogspot.com/2012/03/resolving-pls-00201-identifier.html
但是我不想对系统进行这些更改。
有没有办法让我运行类似此查询的内容以递归方式运行(在堆栈交换中找到),并将其写入临时表或文件中。
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.SID = 'SESSIONID'
在夏季,我希望能够运行跟踪而不必对系统进行更改。也许像sp_whoisactive(由SQL Server的Adam技师)写到文件或表等中。
任何人都有想法