Sql-Server

如何查看SQL Server/SQL Server 數據庫一天內發生了多少事務?

  • March 29, 2019

我必須將我的 SQL Server 遷移到特定的公共雲上,該雲根據 SQL Server 上發生的事務數進行收費/許可。

我知道 SQL Server 的性能計數器:數據庫 - 事務/秒和批次/秒。

我是否只是將這些每秒事務數據轉換為小時數,還是有其他方法可以找出 SQL Server 中正在進行的事務總數。

Transactions/Sec 和 Batch Requests/Sec 的 Perfmon 計數器是累積計數器,這意味著它們在 SQL Server 啟動後會繼續上升。

要獲得自啟動以來每天的計數,請將計數器輸出除以伺服器已啟動的天數。一個簡單的方法是檢查 TempDB 的創建日期 - 這是一個範例查詢,但請記住,如果伺服器的執行時間不到一兩天,四捨五入將是一個問題:

SELECT DATEDIFF(dd, create_date, GETDATE()) 
FROM sys.databases 
WHERE database_id = 2;

要獲得每日數字,請考慮將該計數器的內容保存到表格中。然後你可以取一天的指標,減去前一天,你會得到那一天的計數器增量。(我使用sp_BlitzFirst 和 DBA 的 Power BI Dashboard以 15 分鐘的時間間隔執行此操作。(免責聲明:這些是我編寫的開源工具。))

不幸的是,如果您嘗試進行每日採樣,則可能不准確,原因是:

  • 伺服器重新啟動或群集 SQL Server 服務故障轉移
  • 可用性組或數據庫鏡像轉換角色(故障轉移)不會重置這些計數器,但您需要將兩個副本的事務或批次相加
  • 如果您正在組合來自多個副本的指標,請記住您可能還擁有監控軟體,並且監控軟體的查詢也將被計算在內

引用自:https://dba.stackexchange.com/questions/233454