Oracle作为RDBMS的一哥,很多细节设计的比较完善。在v$SYSMETRIC*这些视图中,已经帮你计算好了TPS和QPS。
方法1:查询V$SYSMETRIC或V$SYSMETRIC_HISTORY
QPS:
- 最近1分钟QPS
- select value from v$sysmetric where metric_name in ('Executions Per Sec') where group_id=2;
- 最近15秒QPS
- select value from v$sysmetric where metric_name in ('Executions Per Sec') where group_id=3
- 1
- 2
- 3
- 4
TPS:
- select (select value from v$sysmetric where metric_name in ('User Commits Per Sec') and group_id=2) +
- (select value from v$sysmetric where metric_name in ('User Rollbacks Per Sec') and group_id=2) as TPS from dual;
- 1
- 2
方法2:自己查询V$SYSSTAT,类似mysql的方法,计算出QPS和TPS
QPS:前后两次差值/时间差
select value from v$sysstat where name = 'execute count';
- 1
TPS:前后两次差值/时间差
- select (select value from V$SYSSTAT where name in ('user commits')) +
- (select value from V$SYSSTAT where name in ('user rollbacks')) as TPS from dual;