我想在每次调用用户定义的存储过程时记录持续时间和时间。我相信使用扩展事件将是实现这一目标的方法。
你能帮我定义会话和查询结果吗?我不太确定要添加哪个事件(sqlserver.rpc_completed?)以及选择哪个目标(synchronous_event_counter、asynchronous_file_target 或 ring_buffer?)。
我还需要查询结果的帮助(例如:对结果集进行分组,以便每个 sp 从顶部显示执行持续时间和执行时间。)我们使用 SQL Server 2008 R2。
在 SQL Server 2008 R2 和扩展事件中,您的选项有点受限。您可以尝试
rpc_completed
,但请记住它只会注册远程过程调用。下面是一些在 SQL 2008 R2 中测试的示例代码,它展示了如何创建一个会话然后读取它。完成它,确保你理解它并尝试一下:synchronous_event_counter
可能不会帮助你,因为你只是得到一个事件和计数。这很好说,计算一天中的登录或死锁,诸如此类。ring_buffer
可能不会帮助你,因为它是一个圆形区域,只允许有限的空间。基本上它可能会用完空间并循环结束。HTH