Oracle SQL-跟踪数据库

时间:2018-07-05 12:13:59

标签: sql oracle trace

我来自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技师)写到文件或表等中。

任何人都有想法

0 个答案:

没有答案