暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

[常规总体性能调优] Oracle Transaction per Second (TPS): 评估事务吞吐量

原创 福娃筱欢 恩墨学院 2021-05-12
2145

对于此类信息探究有时候总是会有些”云里雾里“… 这可能是由于Oracle并未将此类信息描述得非常清楚,或者在一些信息反馈表中,它并不是最注重的那个。
但是在和其它系统就不同架构配置来进行”性能/吞吐量“比较的时候,它往往直观有用。

你可以在AWR的”Report Summary“部分中,在"Load Profile",”Transactions“项找到它:
image.png
不过你是否想通过SQL查询来直接计算出它呢?或者你希望从查询中获取一个历史趋势呢?

这里,我从10g的文档中找到了相关对事务吞吐量的描述:
Number of Transactions = (DeltaCommits+DeltaRollbacks)/Time
即事务的吞吐量 为: User commits + User Rollbacks

因此我们可以通过以下SQL来进行实现:

WITH hist_snaps AS (SELECT instance_number, snap_id, round(begin_interval_time,'MI') datetime, ( begin_interval_time + 0 - LAG (begin_interval_time + 0) OVER (PARTITION BY dbid, instance_number ORDER BY snap_id)) * 86400 diff_time FROM dba_hist_snapshot), hist_stats AS (SELECT dbid, instance_number, snap_id, stat_name, VALUE - LAG (VALUE) OVER (PARTITION BY dbid,instance_number,stat_name ORDER BY snap_id) delta_value FROM dba_hist_sysstat WHERE stat_name IN ('user commits', 'user rollbacks')) SELECT datetime, ROUND (SUM (delta_value) / 3600, 2) "Transactions/s" FROM hist_snaps sn, hist_stats st WHERE st.instance_number = sn.instance_number AND st.snap_id = sn.snap_id AND diff_time IS NOT NULL GROUP BY datetime ORDER BY 1 desc;

这样,你就可以很容易的得到趋势图了:)

image.png

最后修改时间:2021-06-18 16:21:20
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论