是否可以获取Oracle中单个执行的统计信息?

时间:2015-06-12 11:21:52

标签: oracle

假设Web应用程序中的操作导致相同的数据库查询执行6次。

如果我想找出6个查询的开始时间以及它们在每种情况下花了多长时间,有没有办法从Oracle数据库中执行此操作?或者我错过了一些配置?

我已经检查了v $ sql,但我的实验表明它没有记录单个执行的详细信息。

1 个答案:

答案 0 :(得分:1)

有一些选择。 1)您可以使用 LOGON TRIGGER 来启用跟踪

create or replace trigger traceme after logon on database
begin
  for tr in (
    select * from (
    select sid,serial# serial
    from v$session
    where username = user /* put here your program name or machine name, check v$session view for detail */
    order by logon_time desc
    ) where rownum < 2
  ) loop
    dbms_system.set_ev(tr.sid,tr.serial,10046,8,'');
  end loop;
end;
/

运行会话后找到跟踪文件并使用TKPROFF / ORASRP等进行分析... 另一个,使用ASH(不是AWR !!!)报告!

如果您没有安装dbconsole或OEM,可以使用相当不错的Oracle SQLDevleoper:

enter image description here