oracle TPS:
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;