sql server:如何知道每小时进行了多少次交易?

时间:2018-01-23 12:39:12

标签: sql sql-server sql-server-2012

我试图找到一种方法(可能使用sys DB)来检索用户数据库上每小时执行的所有查询的信息。 我的客户希望我每小时通过SSRS交易给他每日报告,我很乐意听到网上没有运气的建议。

编辑:我试图了解从哪里获取此信息,而不是每小时如何过滤结果 感谢

3 个答案:

答案 0 :(得分:1)

您可以随时查看以下表格:

master.sys.dm_exec_sessions
master.sys.dm_exec_connections
master.sys.dm_exec_sql_text

答案 1 :(得分:1)

我最终找到了这个(稍作改动)

感谢大家的帮助,这似乎工作正常

create table #execution_count 
(time  datetime,
onhour int,
query nvarchar(max),
dbid int,
objectid int,
number int,
encrypted int,
text nvarchar(max)

)

insert into #execution_count 
SELECT deqs.last_execution_time AS [Time], (datepart(hour, deqs.last_execution_time)) as onhour, dest.text AS [Query], dest.*
FROM sys.dm_exec_query_stats AS deqs
CROSS APPLY sys.dm_exec_sql_text(deqs.sql_handle) AS dest
where deqs.last_execution_time > getdate()-1 --and cast(deqs.last_execution_time  as datetime) between '%19:00:00%' and '%2018-01-16 21:00:00%'
and dest.dbid not in(1,2,3,4)
ORDER BY deqs.last_execution_time DESC


select onhour, count(*) as total_executes_per_hour  from #execution_count 
group by onhour
having count(*)>0
drop table #execution_count 

答案 2 :(得分:0)

您可以使用Perfmon计数器Transactions/secBatch Requests/sec或来自DMV sys.dm_os_performance_counters的相同计数器。

您可以在此处阅读第一个计数器的更多信息:ransactions/sec performance counter

但请看一下这个视频:he Transactions/sec counter has big blind spots因为您可能应该选择Batch Requests/sec