15

我们有一个拥有数百个并发用户的大型系统,因此 sql profiler 在没有适当过滤器的情况下提供了太多信息。我想看看在我的帐户下运行了哪些 SQL 命令,并且仅在我的帐户下运行。帐户是指我用来登录系统的用户名。这些用户名存储在常规数据库表中,因此不能输入到 sql profiler 中的任何过滤器中,我猜?但是即使我们都使用相同的 SQL 登录名/用户,每个登录的用户都可能有一些唯一的 ID?

所以,问题主要是如何获得那个独特的价值以及使用哪个过滤器?或者有什么方法可以在 sql profiler 中看到这个并且只有这个?

4

2 回答 2

23

您应该能够获取连接到 SQL 服务器的机器的主机名。Trace Properties/Event Section选项卡中,勾选Show all Columns选项,然后在Column Filters中您可以指定HostName

如果您想知道正在使用的机器的主机名,请在命令提示符下键入hostname

于 2009-12-18T12:10:00.007 回答
3

每个连接到 SQL Server 的应用程序都有一个唯一的主机 ID(函数返回的值HOST_ID()),您可以对其进行过滤。当然,首先您必须从您的应用程序连接到数据库,以便获取您的主机 ID。

主机 ID 也可以在系统表的hostprocess列中找到。sysprocesses在 Profiler 中,它被称为ClientProcessId.

于 2009-12-18T12:09:48.007 回答