Oracle、MySQL、PostGreSQL、SQL Server-查询每秒事务数

Oracle、MySQL、PostGreSQL、SQL Server-查询每秒事务数

在做 db benchmarks 时,qps、tps 是衡量数据库性能的关键指标,TPS : Transactions Per Second 是每秒事务数,即数据库服务器在单位时间内处理的事务数。 横向对比计划几类数据库计算tps的方法。

Oracle database

定期采样

select sysdate, name, value from v$sysstat where name in ( 'user commits','user rollbacks');

您可以看到发生了多少次提交和回滚——但这绝对不是任何有意义的“TPS”。用户提交将不会反映应用层的“事务”。

oracle自己的metriy视图

select sum(decode(metric_name,'User Transaction Per Sec',round(value,2),0)) as UTPS 
FROM v$sysmetric 
where group_id   = 2 AND metric_name IN ( 'User Transaction Per Sec') 
group by begin_time,end_time ;

也可以参考DBA_TAB_MODIFICATIONS的记录数。

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;

现成的工具可以使用AWR or STATSPACK,Number of Transactions = (DeltaCommits+DeltaRollbacks)/Time

MySQL

Com_commit和Com_rollback在information_schema.global_status. 您需要定期查询它们并计算读数之间的差异才能获得quantity per duration.

SELECT  SUM(IF(variable_name IN ('Com_commit', 'Com_rollback'),variable_value, 0)) /SUM(IF(variable_name = 'Uptime',variable_value, 0))FROM  information_schema.GLOBAL_STATUS

根据question和com_*的状态变量计算tps和qps

com_commit = show global status like 'com_commit';
com_rollback = show global status like 'com_rollback';
uptime = show global status like 'uptime';
tps=(com_commit + com_rollback)/uptimeshow global status where variable_name in('com_select','com_insert','com_delete','com_update');
Get the value of com_* at an interval of 1s, and do the difference calculation
del_diff = (int(mystat2['com_delete'])   - int(mystat1['com_delete']) ) / diff
ins_diff = (int(mystat2['com_insert'])    - int(mystat1['com_insert']) ) / diff
sel_diff = (int(mystat2['com_select'])    - int(mystat1['com_select']) ) / diff
upd_diff = (int(mystat2['com_update'])   - int(mystat1['com_update']) ) / difftps= Com_insert/s + Com_update/s + Com_delete/s
qps=Com_select/s + Com_insert/s + Com_update/s + Com_delete/s

如果数据库中有更多的myisam表,问题更适合计算。
如果数据库中有更多的innodb表,com_*数据源更适合计算。

postgresql

使用此查询读取在所有数据库中执行的事务总数:

SELECT sum(xact_commit+xact_rollback) FROM pg_stat_database;

如果您只想为一个数据库使用相同的计数器,请使用:

SELECT xact_commit+xact_rollback FROM pg_stat_database WHERE datname = 'mydb';

要计算 TPS(每秒事务数),请多次运行查询并计算时间间隔内的差异。

有现成的工具,其中之一是http://bucardo.org/wiki/Check_postgres

SQL SERVER

如果您的服务器上有多个实例,您可以运行以下脚本来了解所有实例在过去 10 秒内发生了多少事务。

-- First PASS
DECLARE @First INT
DECLARE @Second INT
SELECT @First = cntr_value
FROM sys.dm_os_performance_counters
WHERE counter_name = 'Transactions/sec'
-- Following is the delay
WAITFOR DELAY '00:00:10'
-- Second PASS
SELECT @Second = cntr_value
FROM sys.dm_os_performance_counters
WHERE counter_name = 'Transactions/sec';
SELECT (@Second - @First) 'TotalTransactions'
GO

实例特定事务

如果您的服务器上有多个实例,并且想要获取有关任何特定实例的详细信息,则可以运行以下脚本以了解该特定实例在过去 10 秒内发生了多少事务。

-- First PASS
DECLARE @First INT
DECLARE @Second INT
SELECT @First = cntr_value
FROM sys.dm_os_performance_counters
WHERE
OBJECT_NAME = 'MSSQL$SQL19:Databases' AND -- Change name of your server ' AND -- Change name of your server
counter_name = 'Transactions/sec' AND
instance_name = '_Total';
-- Following is the delay
WAITFOR DELAY '00:00:10'
-- Second PASS
SELECT @Second = cntr_value
FROM sys.dm_os_performance_counters
WHERE
OBJECT_NAME = 'MSSQL$SQL19:Databases' AND -- Change name of your server
counter_name = 'Transactions/sec' AND
instance_name = '_Total';
SELECT (@Second - @First) 'TotalTransactions'
GO

数据库特定事务
如果您的服务器上有多个实例,并且想要获取有关任何特定实例和特定数据库的详细信息,则可以运行以下脚本以了解过去 10 秒内针对该特定实例发生了多少事务数据库。

-- First PASS
DECLARE @First INT
DECLARE @Second INT
SELECT @First = cntr_value
FROM sys.dm_os_performance_counters
WHERE
OBJECT_NAME = 'MSSQL$SQL19:Databases' AND -- Change name of your server ' AND -- Change name of your server
counter_name = 'Transactions/sec' AND
instance_name = 'tempdb'; -- Change name of your database
-- Following is the delay
WAITFOR DELAY '00:00:10'
-- Second PASS
SELECT @Second = cntr_value
FROM sys.dm_os_performance_counters
WHERE
OBJECT_NAME = 'MSSQL$SQL19:Databases' AND -- Change name of your server
counter_name = 'Transactions/sec' AND
instance_name = 'tempdb'; -- Change name of your database
SELECT (@Second - @First) 'TotalTransactions'
GO

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/36944.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

微信小程序毕业设计-垃圾分类系统项目开发实战(附源码+论文)

大家好!我是程序猿老A,感谢您阅读本文,欢迎一键三连哦。 💞当前专栏:微信小程序毕业设计 精彩专栏推荐👇🏻👇🏻👇🏻 🎀 Python毕业设计…

AI产品哲学深探:从Perplexity CEO视角看搜索引擎的智慧启示

一、开篇:历史的分岔路口 在科技史的长河中,有些对话悄然决定了行业的走向。回溯至互联网搜索的黎明时期,一场未被充分重视的会谈在两位科技巨擘之间展开。谷歌联合创始人Larry Page与昔日搜索引擎巨头Excite的CEO坐在了谈判桌两端,他们的对话不仅关乎一次潜在的并购,更预…

elasticsearch的查询原理

数据结构 在 Elasticsearch 中,数据结构分布如下: 索引(Index) 索引是 Elasticsearch 中存储数据的基本单元,相当于关系型数据库中的数据库。一个 Elasticsearch 集群中可以包含多个索引。 类型(Type) (从 Elasticsearch 7.0 开始已经被弃用): 在较早版本的 Elasticsearch…

Mathematica训练课(46)-- 一些常用的画图函数

在前面的课程中,我们已经梳理了Plot的画图用法,今天就详细梳理一下其他的画图函数用法; 1. 画一条直线 2. Circle(圆) 3. Disk(圆盘) 4. 画出一个矩形 5. 箭头

c-前缀平方和序列(牛客小白月赛97)

题目&#xff1a; 假如一个长度为 n的正整数序列满足所有前缀和 都是平方数&#xff0c;那么称这种序列为前缀平方序列。 条件1<si<x 取模1e97 首先找出小于x的平方数有几个。 然后用二项式定理 算出小于x的平方数中取n个的种数。 #include<bits/stdc.h> using…

大数据可视化实验(六)——ECharts与pyecharts数据可视化

目录 一、实验目的... 1 二、实验环境... 1 三、实验内容... 1 1、ECharts可视化制作.. 1 1&#xff09;使用ECharts绘制折线图显示一周的天气变换。... 1 2&#xff09;使用ECharts绘制柱状图显示商品销量的变化。... 4 2、pyecharts可视化制作.. 7 1&#xff09;使用…

beautifulSoup库

是什么? Beautiful Soup(简称BS4)是一种强大而灵活的HTML和XML解析库,广泛用于Python爬虫和数据采集中。相比正则表达式更加简洁. Beautiful Soup提供一些简单的、python式的函数用来处理导航、搜索、修改分析树等功能。它是一个工具箱,通过解析文档为用户提供需要抓取的…

【知识学习】Unity3D中Shader Graph的概念及使用方法示例

Unity3D中的Shader Graph是一个强大的可视化Shader编辑工具&#xff0c;它允许用户通过拖拽和连接节点的方式来创建Shader&#xff0c;而不是通过传统的编写代码的方式。Shader Graph使得Shader的创建过程更加直观和易于理解&#xff0c;特别是对于那些不熟悉Shader语言编程的美…

Java中的性能调优技巧与工具推荐

Java中的性能调优技巧与工具推荐 大家好&#xff0c;我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01;今天我们来探讨Java中的性能调优技巧与工具推荐。Java作为一门广泛应用的编程语…

【OpenREALM学习笔记:13】pose_estimation.cpp和pose_estimation.h

UML Class Diagram 图中红色框为头文件中所涉及到的函数、变量和结构体 核心函数 PoseEstimation::process() 其核心作用为执行位姿估计的处理流程&#xff0c;并返回是否在此循环中进行了任何处理。 在这个函数中判断并完成地理坐标的初始化或这地理坐标的更新。 这里需要…

QTreeView第一列自适应

通过setStretchLastSection(bool stretch)可以设置最后一列自适应,对于QTreeView,stretch默认为true。但有时候我们需要设置第一列自适应,比如文件浏览器,共有名称、大小和修改日期三列,大小和日期的宽度几乎是固定的,但名称却可长可短,此时我们希望在窗口大小变化时,第…

IDEA中Maven配置依赖和排除依赖

目录 依赖配置 添加依赖的几种方式&#xff1a; 1.利用中央仓库搜索的依赖坐标 2.利用IDEA工具搜索依赖 3.熟练上手maven后&#xff0c;快速导入依赖 排除依赖 依赖配置 依赖&#xff1a;指当前项目运行所需要的jar包。一个项目中可以引入多个依赖&#xff1a; 例如&am…

python r”, b”, u”, f” 前缀详解

1、r前缀 一般来说&#xff0c;\n’是一个换行符&#xff0c;是一个字符串&#xff1b;而加上r为前缀后&#xff0c;不会以任何特殊方式处理反斜杠。因此&#xff0c;r"\n" 是包含 ‘\’ 和 ‘n’ 的双字符字符串&#xff1b;示例如下&#xff1a; >>> pr…

Go-知识测试-工作机制

Go-知识测试-工作机制 生成test的maintest的main如何启动case单元测试 runTeststRunnertesting.T.Run 示例测试 runExamplesrunExampleprocessRunResult 性能测试 runBenchmarksrunNtesting.B.Run 在 Go 语言的源码中&#xff0c;go test 命令的实现主要在 src/cmd/go/internal…

Java面试题:解释反应式编程的概念,并讨论如何在Java中使用RxJava或Project Reactor实现

反应式编程&#xff08;Reactive Programming&#xff09;是一种基于异步数据流和变化传播的编程范式。它强调通过声明式编程来处理异步事件流和数据流&#xff0c;简化了复杂的异步操作和并发编程。反应式编程适用于处理异步事件、多线程处理、大量数据流、用户交互等场景。 …

零基础快速上手HarmonyOS ArkTS开发4---从简单的页面开始

接着上一次零基础快速上手HarmonyOS ArkTS开发3---应用程序框架的继续往下。 常用基础组件&#xff1a; 概述&#xff1a; 关于组件的一些基础概念就里就不多说了&#xff0c;官方有很详细的说明&#xff0c;而在HarmonyOS按功能分有如下几大类组件&#xff1a;基础组件、容…

springboot笔记示例八:yml文件数据库连接redis密码加密实现使用jasypt加密

springboot笔记示例八&#xff1a;yml文件数据库连接redis密码加密实现使用jasypt加密 本文md文件下载 https://download.csdn.net/download/a254939392/89496228点击下载本文md文件 说明 springboot中大多数配置我们都采用yml文件配置&#xff0c;比如数据库连接&#xff…

安卓短视频去水印v1.7 简洁好用

各大平台视频无水印提取&#xff0c;登录即永久会员&#xff01; 无水印提取&#xff0c;图片无水印提取 视频旋转&#xff0c;倒放&#xff0c;转gif等功能 链接&#xff1a;https://pan.baidu.com/s/1buoJmAvSFBiRkBmHc7Nn5w?pwd2fu4 提取码&#xff1a;2fu4

LeetCode-数值-No49字母异位词

题目&#xff1a; 给你一个字符串数组&#xff0c;请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。字母异位词 是由重新排列源单词的所有字母得到的一个新单词。 示例 1: 输入: strs ["eat", "tea", "tan", "ate", &q…

Lr、LrC软件下载安装 Adobe Lightroom专业摄影后期处理软件安装包分享

Adobe Lightroom它不仅为摄影师们提供了一个强大的照片管理平台&#xff0c;更以其出色的后期处理功能&#xff0c;成为了摄影爱好者们争相追捧的必备工具。 在这款软件中&#xff0c;摄影师们可以轻松地管理自己的照片库&#xff0c;无论是按拍摄日期、主题还是其他自定义标签…