查找当前正在运行的扩展事件会话何时开始?

Gab*_*abe 5 sql-server

对于老式跟踪,我可以查看 sys.traces 或 SQL Server 日志以查找跟踪开始的时间。扩展事件有类似的东西吗?我遇到了这个博客条目关于使用 DDL 触发器的,但我想知道是否有更好的东西。

SQL Server 2012-2014

小智 6

有但它不一定提供“状态”本身。如果您在此处查看sys.dm_xe_sessions联机丛书中的定义:

返回有关活动扩展事件会话的信息。此会话是事件、操作和目标的集合。

关键是active extended events sessions,这个 DMV 只会返回那些正在运行的 XE 会话。因此,您基本上只需查看create_time会话开始的时间。您可以通过查看system_health会话来验证这一点,因为返回的时间应该与上次启动实例的时间相匹配。

一个例子是我本地机器上的 SQL Server 2012 实例大部分时间都保持停止状态,直到我需要它。我刚刚开始,所以你可以看到时间非常接近: 在此处输入图片说明