小编jim*_*jim的帖子

扩展事件、sp_reset_connection 和 sql_text

我在 3 台不同的服务器上运行了扩展的事件会话。我正在寻找长时间运行或过度调用的存储过程和内联查询(ORM,主要是 nHibernate)。

rpc_completed event_name 的输出显示 object_type 和 statements_text 的“sp_reset_connection”。但是,它还有一个在 sql_text 中捕获的查询。

扩展事件是否将 2 个执行 --sp_reset_connection 和查询 -- 作为单个事件捕获?我是否应该查看 sp_reset_connection 加上 sql_text 或 statements_text 中的查询的总时间的持续时间值?或者,它是否捕获 sp_reset_connection 并仅显示触发 sp_reset_connection 的查询?

我期望 sp_reset_connection 和查询是单独的事件。

澄清:为什么扩展事件会返回字段之间的冲突?

1. object_name = 'sp_reset_connection'
2. statement = 'exec sp_reset_connection'
3. sql_text = a query (ex: '(@p0 int)SELECT specificat0_.ScenarioId ...')
Run Code Online (Sandbox Code Playgroud)

为什么 sql_text 不同?在典型的扩展事件行 (XML) 中,3 个字段对于已执行的内容是一致的。这给我留下了一个问题:“什么被处决了?”。是否应将持续时间字段值分配给 sp_reset_connection?或者在sql_text中找到内联sql?或两者?

我了解 sp_reset_connection 是什么以及它是如何工作的。我不明白的是扩展事件是如何报告的。Profiler 在报告 sp_reset_connection 时没有歧义。

我的结论是扩展事件正在返回 sp_reset_connection 的结果。然而,这是基于我观察到的结论——即猜测。我需要更具体的东西:即使只有其他人得出相同的结论。

这篇文章表明我可以忽略sql_text。

https://www.sqlskills.com/blogs/jonathan/understanding-the-sql_text-action-in-extended-events/

感谢您的帮助。

sql-server

3
推荐指数
1
解决办法
828
查看次数

标签 统计

sql-server ×1