我如何寻找每周,每月和每年的Oracle DB交易?是否有针对此类分析的特定查询?
如果您的AWR保留配置足够长,则可以查询AWR数据。由于每个交易必须以提交或回滚结束,因此提交和回滚的组合应该是交易#。所以...
SELECT TRUNC(begin_interval_time,'IW'),
SUM(diff) transactions
FROM (SELECT sn.begin_interval_time,
ss.instance_number,
ss.stat_name,
ss.value - LAG(ss.value) OVER (PARTITION BY ss.stat_name,ss.instance_number ORDER BY sn.begin_interval_time) diff
FROM dba_hist_sysstat ss,
dba_hist_snapshot sn
WHERE stat_name IN ('user rollbacks','user commits')
AND ss.snap_id = sn.snap_id)
GROUP BY TRUNC(begin_interval_time,'IW')
ORDER BY 1 DESC
consey,通常数据库可能不会超过几周,也许一个月。如果您想要更长的时间,则必须扩展AWR的保留率,然后等待更长的时间段建立,或定期捕获gv$sysstat
数据并存储在存储库中。