Sql-Server
如何查看SQL Server/SQL Server 數據庫一天內發生了多少事務?
我必須將我的 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 服務故障轉移
- 可用性組或數據庫鏡像轉換角色(故障轉移)不會重置這些計數器,但您需要將兩個副本的事務或批次相加
- 如果您正在組合來自多個副本的指標,請記住您可能還擁有監控軟體,並且監控軟體的查詢也將被計算在內