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.pswp.cn/web/36944.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/36944.shtml
英文地址,請注明出處:http://en.pswp.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;無論是按拍攝日期、主題還是其他自定義標簽…