确定Oracle DB Transactions的数量

问题描述 投票:0回答:1

我如何寻找每周,每月和每年的Oracle DB交易?是否有针对此类分析的特定查询?

sql database oracle-database transactions
1个回答
0
投票

如果您的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

数据并存储在存储库中。
    

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.