【问题标题】:SQL: How can I get the number of executed queries per database or hour or ...?SQL:如何获取每个数据库或每小时或...的执行查询数?
【发布时间】:2012-04-08 04:24:47
【问题描述】:

有没有什么方法可以查看每小时执行多少查询,或者每个数据库/小时,或者一天的平均查询数,或者......任何有趣的事情?

仅用于统计.. 我喜欢数字。 我不能只使用 Sql Server Profiler 开始跟踪,因为当查询过多时 UI 会崩溃。

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

(我使用的是 SQL Server 2008 R2)

【问题讨论】:

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


【解决方案1】:

我实际上只是在我的 Microsoft 认证中了解到这一点。

虽然我还不能直接回答你的问题,但我可以通过几件事向你发送正确的方向:

  1. 查看服务器 > 数据库 > 系统数据库 > MSDB > 视图 > 系统视图中的视图。 MSDN Systsem Views
  2. 查看服务器 > 数据库 > 系统数据库 > 主 > 视图 > 系统视图中的视图。
  3. 充分利用 SQL Server 可用的跟踪工具。

在视图中请注意,您实际上可能必须将几个视图连接在一起,或者获取基础表才能明确获得您所追求的内容。

【讨论】:

    【解决方案2】:

    这应该可行:

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

    它实际上返回 total 批请求。你定期轮询这个数字,然后使用这个计算:

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

    【讨论】:

    • 很好,我还不知道这个柜台。你知道这个计数器什么时候重置吗?计数器有一个值(大约 2.24 亿),但就像 10 天前一样。这是所有数据库的总和。我也可以“每个数据库”获取此信息吗?
    • @RBarryYoung 您的网站显示“用户“rba0813312265276”登录失败。原因:该帐户已被禁用。禁用公共异常可能很好?
    • @Erik Dekker:当 SQL Server 启动时计数器被重置。没有等效的每个数据库计数器 (AFAIK),但可能有一些产品/工具可以得到它(通过跟踪和扩展)。
    • @Kees C. Bakker:很遗憾,但我已经很久没有维护我的网站了。所以它真的对每个人都无效,包括我。对不起。 :(
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-31
    • 2014-05-04
    • 1970-01-01
    • 1970-01-01
    • 2013-04-16
    • 1970-01-01
    相关资源
    最近更新 更多