代码之家  ›  专栏  ›  技术社区  ›  Rowland Shaw

为特定客户机分析SQL Server的影响最小的方法是什么?

  •  2
  • Rowland Shaw  · 技术社区  · 14 年前

    具有讽刺意味的是,我正试图减少对一大堆SQL查询的需求,并且希望能够以一种相当非侵入性的方式检查通过网络发送的查询,而不影响服务器性能。为此,有没有一个类似的工具在方法上有多有用 Fiddler 用于调试HTTP连接,但允许对SQL Server进行客户端分析(至少对.net应用程序如此)?或者是为单个客户机运行配置文件不会影响服务器性能?

    5 回复  |  直到 14 年前
        1
  •  3
  •   Martin Smith    14 年前

    您已经为这个ADO.NET添加了标签。ADO.NET具有 inbuilt tracing facilities

    extended events ? 可以将这些配置为删除多余的事件,而不是像SQL Trace/SQL Profiler那样导致服务器降级。

    一种轻量级的方法,可以了解正在运行的查询以及运行频率

    select * from sys.dm_exec_cached_plans
    outer apply sys.dm_exec_sql_text(plan_handle)
    order by usecounts desc
    

    但是,这不符合特定的客户机标准,并且受到计划缓存的影响。

        2
  •  4
  •   Dave Markle    14 年前

    在这种情况下,最好使用 Default Trace

    好吧,我收回这句话。你能做的最好的事情就是和你的DBA谈一些道理,让他或她至少允许在开发服务器上进行跟踪。你现在的处境很可笑。

    你呢 试着使用像 Wireshark 观察网络流量,然后拉出感兴趣的查询,在SSMS中分别运行它们,并将STATISTICS IO设置为ON,从中收集一些信息。希望他能给你足够的权限来获取查询计划。但这是一个错误 解决方案。事实上,你应该否决我的建议。

        3
  •  2
  •   HLGEM    14 年前

    我的本地友好DBA不喜欢允许在SQL服务器(甚至是非生产服务器)上进行概要分析的想法,因为它们会影响性能。

    好吧,他或她可能有一个观点,很可能已经燃烧了这一点在过去。

    探查器可以配置为只探查对性能影响较小的非常有限的事件。dba甚至可以是您建议的设置探查器条件并运行它的dba,它可以在您运行要评测的进程时将结果保存到一个表中。这样,他就可以控制所描述的内容,确保在不需要的时候停止,并确保它的影响尽可能小,你就能得到你想要的。毕竟dba的工作就是做这些事情。也许她需要提醒。

        4
  •  1
  •   Mel Harbour    14 年前

    ANTS Performance Profiler 包括SQL和I/O分析,因此您可以在客户端获得这些详细信息,而无需在服务器上施加任何负载。

        5
  •  0
  •   Will A    14 年前

    Microsoft's Network Monitor 是一个工具,我已经考虑了这样一个目的,在过去-到了安装它和发挥,但后来不得不做一些真正的工作,所以放弃了它。它看起来确实很有前途,并且有用于SQL相关协议(包括TDS)的解析器。