SQL:如何获得每个数据库或小时或......的执行查询数?

时间:2012-03-23 15:36:57

标签: sql sql-server-2008 statistics performancecounter sql-server-profiler

有没有办法查看每小时,每个数据库/小时执行的查询数量,或一天中的平均查询数,或者......有趣的是什么?

仅供统计。我喜欢数字。 我不能只使用Sql Server Profiler启动跟踪,因为当查询过多时,UI将崩溃。

SQL是否在某处跟踪某些基本的“已执行查询统计信息”,或者我是否可以使用任何工具来获取此信息?

(我使用SQL Server 2008 R2)

2 个答案:

答案 0 :(得分:5)

这应该有效:

select * 
from sys.dm_os_performance_counters
where counter_name = 'Batch Requests/sec'

它实际上返回总计批量请求。您定期轮询此数字,然后使用此计算:

ReqsPerSec = (curr.Value - prev.Value) / (curr.time - prev.time)

答案 1 :(得分:0)

我实际上只是在微软认证中了解这一点。

虽然我还没有直接回答你的问题,但我可以向你发送一些正确的方向:

  1. 查看服务器内的视图&gt;数据库&gt; <系统数据库> MSDB&gt;意见&gt;系统视图。 MSDN Systsem Views
  2. 查看服务器内的视图&gt;数据库&gt; <系统数据库>主人&gt;意见&gt;系统视图。
  3. 在SQL Server可用的跟踪工具上占据一席之地。
  4. 在视图中注意到,您实际上可能必须将几个视图连接在一起,或者获取基础表以获得具体的内容。