- 最后登录
- 2018-9-14
- 在线时间
- 47 小时
- 威望
- 205
- 金钱
- 2327
- 注册时间
- 2011-10-13
- 阅读权限
- 150
- 帖子
- 90
- 精华
- 0
- 积分
- 205
- UID
- 26
|
1#
发表于 2017-7-24 11:09:03
|
查看: 2979 |
回复: 0
对于此类信息探究有时候总是会有些”云里雾里“... 这可能是由于Oracle并未将此类信息描述得非常清楚,或者在一些信息反馈表中,它并不是最注重的那个。
但是在和其它系统就不同架构配置来进行”性能/吞吐量“比较的时候,它往往直观有用。
你可以在AWR的”Report Summary“部分中,在"Load Profile",”Transactions“项找到它:
不过你是否想通过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;
复制代码 这样,你就可以很容易的得到趋势图了:)
|
|