Sql-Server
如何獲取給定 MSSQL 數據庫上每日已送出事務的數量?
目前連接的事務數可以通過@@TRANCOUNT 獲得。
如何獲得給定數據庫上全域送出事務的每日計數器?
- 下面是來自 Paul 的部落格 Script: open transactions 的一個很棒的腳本,其中包含文本和計劃,應該可以幫助您進行:
SELECT [s_tst].[session_id], [s_es].[login_name] AS [Login Name], DB_NAME (s_tdt.database_id) AS [Database], [s_tdt].[database_transaction_begin_time] AS [Begin Time], [s_tdt].[database_transaction_log_bytes_used] AS [Log Bytes], [s_tdt].[database_transaction_log_bytes_reserved] AS [Log Rsvd], [s_est].text AS [Last T-SQL Text], [s_eqp].[query_plan] AS [Last Plan] FROM sys.dm_tran_database_transactions [s_tdt] JOIN sys.dm_tran_session_transactions [s_tst] ON [s_tst].[transaction_id] = [s_tdt].[transaction_id] JOIN sys.[dm_exec_sessions] [s_es] ON [s_es].[session_id] = [s_tst].[session_id] JOIN sys.dm_exec_connections [s_ec] ON [s_ec].[session_id] = [s_tst].[session_id] LEFT OUTER JOIN sys.dm_exec_requests [s_er] ON [s_er].[session_id] = [s_tst].[session_id] CROSS APPLY sys.dm_exec_sql_text ([s_ec].[most_recent_sql_handle]) AS [s_est] OUTER APPLY sys.dm_exec_query_plan ([s_er].[plan_handle]) AS [s_eqp] ORDER BY [Begin Time] ASC; GO
您可以通過作業相應地安排它,以根據您的需要向您發送結果:
- 此外,您可以參考Adam Mechanic 的 WHO_IS_ACTIVE以獲取相同的詳細資訊。
要從 who_is_active 收集數據,您可以將其記錄到表中以供以後查看,如此處所述如何在循環中使用 sp_whoisactive 記錄活動