如何获得sql语句在X小时内执行的次数计数?

如何获得sql语句在X小时内执行的次数计数?,sql,oracle,Sql,Oracle,我正在使用oracledb。我希望能够计算SQL语句在X小时内执行的次数。例如,在过去5小时内,语句Select*From ExampleTable执行了多少次 我试着查找V$SQL、V$SQLSTATS、V$SQLAREA,但它们只记录语句的执行总量。他们不存储每次执行死刑的时间。是否有我遗漏的任何视图,或者其他一些跟踪每个语句执行+时间戳的视图,以便我可以查询X小时前发生的事件?谢谢你的帮助。很抱歉,我没有评论,而是在回答中提到了这一点(我没有必要的声誉),但我认为你可能运气不好。下面是一个

我正在使用oracledb。我希望能够计算SQL语句在X小时内执行的次数。例如,在过去5小时内,语句
Select*From ExampleTable
执行了多少次


我试着查找V$SQL、V$SQLSTATS、V$SQLAREA,但它们只记录语句的执行总量。他们不存储每次执行死刑的时间。是否有我遗漏的任何视图,或者其他一些跟踪每个语句执行+时间戳的视图,以便我可以查询X小时前发生的事件?谢谢你的帮助。

很抱歉,我没有评论,而是在回答中提到了这一点(我没有必要的声誉),但我认为你可能运气不好。下面是一个提问者问的基本相同的问题:。Tom说,除非您使用的是ASH,否则这不是数据库设计的目的。

很抱歉将此作为答案而不是评论(我没有必要的声誉),但我认为您可能运气不好。下面是一个提问者问的基本相同的问题:。Tom说,除非您使用的是ASH,否则这不是数据库设计的目的。

活动工作负载存储库中的视图存储历史SQL执行信息,特别是视图

观点不完善;它包含顶级SQL语句的摘要。这几乎是性能调优的完美信息—实际上,采样将捕获任何性能问题。但是,如果您正在寻找每个SQL执行的完美记录,据我所知,获取该信息的唯一方法是通过,这是有缺陷且缓慢的

希望这个查询足够好:

select begin_interval_time, end_interval_time, executions_delta, dba_hist_sqlstat.*
from dba_hist_sqlstat
join dba_hist_snapshot
    on dba_hist_sqlstat.snap_id = dba_hist_snapshot.snap_id
    and dba_hist_sqlstat.instance_number = dba_hist_snapshot.instance_number
order by begin_interval_time desc, sql_id;

活动工作负载存储库中的视图存储历史SQL执行信息,特别是视图

观点不完善;它包含顶级SQL语句的摘要。这几乎是性能调优的完美信息—实际上,采样将捕获任何性能问题。但是,如果您正在寻找每个SQL执行的完美记录,据我所知,获取该信息的唯一方法是通过,这是有缺陷且缓慢的

希望这个查询足够好:

select begin_interval_time, end_interval_time, executions_delta, dba_hist_sqlstat.*
from dba_hist_sqlstat
join dba_hist_snapshot
    on dba_hist_sqlstat.snap_id = dba_hist_snapshot.snap_id
    and dba_hist_sqlstat.instance_number = dba_hist_snapshot.instance_number
order by begin_interval_time desc, sql_id;

值得指出的是,AWR不是免费的。尽管我们可以查询AWR表,如图所示,但只有在我们的组织购买了Oracle数据库诊断包(企业版的一项额外收费)的情况下,我们才有权这样做。值得指出的是,AWR不是免费的。尽管我们可以查询AWR表,如图所示,但只有在我们的组织购买了Oracle数据库诊断包(企业版的一项额外收费)的情况下,我们才有权这样做。