当我运行查询时
SELECT * FROM sys.sysobjects WHERE xtype = 'U'
我发现还有2个表添加了trace_xe_action_map
和trace_xe_event_map
,我意识到这两个兄弟姐妹来自扩展事件,但我记得将它们插入到我的数据库中。但我不知道他们属于哪个xtype
。因为如果我在SQL Server Management Studio中运行上述查询;我无法找到它们。我应该在SQL Server Management Studio中显示哪些查询?
答案 0 :(得分:3)
trace_xe_action_map(Transact-SQL)
每个扩展事件操作包含一行,映射到SQL跟踪列ID。该表存储在sys数据库的主数据库中 适用于:SQL Server 2012 +。
trace_xe_event_map(Transact-SQL)
每个扩展事件事件包含一行,映射到SQL跟踪事件类。该表存储在sys数据库的主数据库中 适用于:SQL Server 2012 +。
您可以使用以下查询来标识与SQL Trace事件类等效的扩展事件事件:
SELECT te.name, xe.package_name, xe.xe_event_name
FROM sys.trace_events AS te
LEFT JOIN sys.trace_xe_event_map AS xe
ON te.trace_event_id = xe.trace_event_id
WHERE xe.trace_event_id IS NOT NULL
并非所有事件类都具有等效的扩展事件事件。您可以使用以下查询列出没有等效扩展事件的事件类:
SELECT te.trace_event_id, te.name
FROM sys.trace_events AS te
LEFT JOIN sys.trace_xe_event_map AS xe
ON te.trace_event_id = xe.trace_event_id
WHERE xe.trace_event_id IS NULL
执行此查询:
SELECT *
FROM sys.all_objects -- also FROM sys.system_objects
WHERE name like 'trace_xe_%'
你会得到这样的结果:
name | object_id | type | type_desc
--------------------+------------+------+------------
trace_xe_action_map | -463397375 | U | USER_TABLE
trace_xe_event_map | -319884821 | U | USER_TABLE