上周我有两个实例,其中DROP
一个扩展事件会话的命令需要一天时间才能完成,等待:PREEMPTIVE_XE_CALLBACKEXECUTE
.
谁能解释这种等待类型是什么意思?
更多背景信息:
在第一个实例中,我运行了一个 T-SQL 命令来删除会话,并在一天后完成。使用sp_whoisactive
,我看到查询正在等待PREEMPTIVE_XE_CALLBACKEXECUTE
。
在此期间,对象资源管理器收集元数据的查询被阻止并收到锁定超时,但没有其他投诉(或者我当时认为)。
我试图在星期五停止另一个会话,并且发生了相同的行为,但它并没有像第一个事件那样在一天后消失。相反,我今天早上发现客户端应用程序无法连接。它被DROP EVENT SESSION
查询阻止了。
重新启动 SQL 服务清除了阻塞查询。
我找不到任何有助于诊断这是什么等待类型的东西......以及为什么我的事件会话不会像他们应该的那样下降。你能帮我吗?
服务器信息:带有 SP2 的 SQL 2008 R2 Enterprise
我相信这个问题在SQL Server 2008 R2 SP2 Cumulative Update #1 (10.50.4260) 中得到了修复:
KB #2511963 - 修复:如果查询更改或停止扩展事件会话,则查询在 SQL Server 2008 或 SQL Server 2008 R2 中停止响应
他们没有提及您的特定等待类型,但我看到其他人已经说过此修复解决了他们的问题。因此,如果您实际上是在没有 CU (10.50.4000) 的 SP2 上,您应该至少考虑该 CU 或更高版本(2008 R2 SP2 的最新 CU 是 CU7 (10.50.4286))。