Royi Namir Asked: 2012-12-13 07:52:40 +0800 CST2012-12-13 07:52:40 +0800 CST 2012-12-13 07:52:40 +0800 CST SQL Server Profiler 行为? 772 我只想监视 sp。 SQL Server Profiler 是否会监听所有事件然后过滤所需的数据(例如 sp 的数据)? 或者更确切地说,sql仅发出Profiler 预配置事件? sql-server sql-server-2008 1 个回答 Voted Best Answer Mike Walsh 2012-12-13T08:53:50+08:002012-12-13T08:53:50+08:00 SQL Trace(Profiler 的构建基础)将捕获您决定收集的任何事件的所有实例。因此,如果您收集 RPC:Completed 事件,您将获得每个 RPC 完成的事件,trace 将捕获该事件。如果您不选择该事件,trace 将不会获取它。所以它只会捕获它被告知的内容。 然后,您可以(并且应该)通过在各个列上添加过滤器来进一步过滤返回的数据(例如,数据库名称或已完成事件的持续时间,以仅捕获持续时间大于特定值的事件)。在这种情况下,该事件的所有实例仍会被捕获,但会在信息转储到您用于跟踪的机制之前应用过滤器。 看到不同?如果您不选择该事件,则不会捕获或发送该事件(如您所说,如果我理解正确的话会发出),但如果您选择该事件 - 所有实例都会被捕获,但只有那些通过过滤器的实例标准被发送(发出)。 我也反对使用探查器,但考虑对文件进行服务器端跟踪。查看 Jonathan Kehayias 的这篇博客文章,了解这些方法对性能影响的差异。
SQL Trace(Profiler 的构建基础)将捕获您决定收集的任何事件的所有实例。因此,如果您收集 RPC:Completed 事件,您将获得每个 RPC 完成的事件,trace 将捕获该事件。如果您不选择该事件,trace 将不会获取它。所以它只会捕获它被告知的内容。
然后,您可以(并且应该)通过在各个列上添加过滤器来进一步过滤返回的数据(例如,数据库名称或已完成事件的持续时间,以仅捕获持续时间大于特定值的事件)。在这种情况下,该事件的所有实例仍会被捕获,但会在信息转储到您用于跟踪的机制之前应用过滤器。
看到不同?如果您不选择该事件,则不会捕获或发送该事件(如您所说,如果我理解正确的话会发出),但如果您选择该事件 - 所有实例都会被捕获,但只有那些通过过滤器的实例标准被发送(发出)。
我也反对使用探查器,但考虑对文件进行服务器端跟踪。查看 Jonathan Kehayias 的这篇博客文章,了解这些方法对性能影响的差异。