我正在 SQL Server 中处理扩展事件会话,并遇到了我不完全理解的 T-SQL 代码的一部分。具体来说,我对以下代码部分中使用“Mode = 3 OR Mode = 4”感到困惑:
...
ADD EVENT sqlserver.latch_suspend_end
(WHERE (
Duration > 0
AND (Mode = 3 OR Mode = 4)
AND has_waiters = 1
)
)
...
我一直在尝试寻找文档或任何类型的信息来解释“Mode = 3”和“Mode = 4”在这种情况下代表什么,但到目前为止,我还没有运气。
此外,我有兴趣找到描述不同事件的属性和可能值的文档或参考的综合来源,而不仅仅是针对这个特定示例。有人可以向我指出相关文档或解释这些模式值在此扩展事件会话中的含义吗?
预先感谢您的帮助!
这些值对应于
UP
和EX
锁存器。该
mode
字段的数据类型为latch_mode
。数值到含义的映射包含在
sys.dm_xe_map_values
注意:我不知道该
LASTLATCH
条目是关于什么的,也不知道这是否可以在实践中真正看到。1
主要闩锁文档仅提及值为 的条目5
。sys.dm_os_wait_stats
文档确实还提到LATCH_NL
“仅供参考”,但没有神秘的第七模式。这可能与Paul White 在此研究的lock_mode
假问题类似。尽管在 SQL Server 2000 8.00.194 中明显看到的错误消息的上下文中也提到了它
要在将来自己获取这些映射,您可以调整示例查询C.5 sys.dm_xe_map_values 和事件字段以获取上表中显示的值。