查找哪些应用程序使用Profiler Trace with Application Name列访问我的服务器

时间:2010-09-01 20:58:46

标签: sql-server profiler

我需要找出使用我的sql server的所有应用程序。

我正在使用Profiler跟踪来执行此操作(如果还有其他方法可以执行此操作,我将不胜感激)

在Profiler上我正在使用重播模板,在查看跟踪结果后,我看到有一个名为Application Name的列,我想知道是否有办法获得不同的(跟踪是在a。 trc文件)。

(顺便说一句,这应该发布在stackoverflow或serverfault上?)

谢谢, 加布里埃尔

2 个答案:

答案 0 :(得分:3)

试试这个:

SELECT DISTINCT ApplicationName
FROM ::fn_trace_gettable('C:\YourFolder\YourTraceFile.trc', DEFAULT) t

答案 1 :(得分:1)

您实际上可以在SQL Server 2008中的Profiler中执行此操作。

使用以下两个事件创建跟踪:

  • 安全审核:审核登录
  • 安全审核:现有连接

对于这两个事件,请捕获以下列:

  • 活动类
  • 申请名称
  • SPID(必填)
  • 活动子类

向Event Subclass添加一个过滤器,将其限制为1.此过滤器仅捕获非池化登录。这应该为您提供所有现有连接以及在运行跟踪期间发生的任何新登录。

接下来,在组织列中,将“应用程序名称”移动到“组”部分。现在,这将按应用程序名称对所有结果进行分组。

这是一个非常轻量级的跟踪,如果将其限制为仅包含那些事件并应用过滤器,则不应在服务器上放置太多(如果有的话)负载。

(我很确定以前的版本的工作方式是一样的。我只是没有一个在我面前进行测试。)