Faj*_*iya 1 sql-server documentation extended-events
我正在 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
)
)
...
Run Code Online (Sandbox Code Playgroud)
我一直在尝试寻找文档或任何类型的信息来解释“Mode = 3”和“Mode = 4”在这种情况下代表什么,但到目前为止,我还没有运气。
此外,我有兴趣找到描述不同事件的属性和可能值的文档或参考的综合来源,而不仅仅是针对这个特定示例。有人可以向我指出相关文档或解释这些模式值在此扩展事件会话中的含义吗?
预先感谢您的帮助!
这些值对应于UP
和EX
锁存器。
该mode
字段的数据类型为latch_mode
。
数值到含义的映射包含在sys.dm_xe_map_values
地图键 | 地图值 |
---|---|
0 | 荷兰 |
1 | 凯普 |
2 | SH |
3 | 向上 |
4 | 前任 |
5 | DT |
6 | 最后一个插销 |
注意:我不知道该LASTLATCH
条目是关于什么的,也不知道这是否可以在实践中真正看到。1
主要闩锁文档仅提及值为 的条目5
。sys.dm_os_wait_stats
文档确实还提到LATCH_NL
“仅供参考”,但没有神秘的第七模式。这可能与Paul White 在此研究的lock_mode
假问题类似。
尽管在 SQL Server 2000 8.00.194 中明显看到的错误消息的上下文中也提到了它
SQL Server Assertion: File: <latch .cpp>, line=799
Failed Assertion = 'type > NL && type < LASTLATCH'.
Run Code Online (Sandbox Code Playgroud)
要在将来自己获取这些映射,您可以调整示例查询C.5 sys.dm_xe_map_values 和事件字段以获取上表中显示的值。
SELECT --C.5
dp.name AS [Package],
do.name AS [Object],
do.object_type AS [Object-Type],
'o--c' AS [O--C],
dc.name AS [Column],
dc.type_name AS [Column-Type-Name],
dc.column_type AS [Column-Type],
dc.column_value AS [Column-Value],
'c--m' AS [C--M],
dm.map_value AS [Map-Value],
dm.map_key AS [Map-Key]
FROM sys.dm_xe_objects AS do
JOIN sys.dm_xe_object_columns AS dc
ON dc.object_name = do.name
JOIN sys.dm_xe_map_values AS dm
ON dm.name = dc.type_name
JOIN sys.dm_xe_packages AS dp
ON dp.guid = do.package_guid
WHERE dp.name = 'sqlserver'
AND do.object_type = 'event'
AND do.name = 'latch_suspend_end'
AND dc.name = 'mode'
ORDER BY [Package],
[Object],
[Column],
[Map-Value];
Run Code Online (Sandbox Code Playgroud)