Sql server QueryableXEventData和;“观看实时数据”;落后一件事

Sql server QueryableXEventData和;“观看实时数据”;落后一件事,sql-server,extended-events,Sql Server,Extended Events,为什么配置为读取实时扩展事件流的QueryableXEventData总是落后一个事件? “监视实时数据”窗口也是如此,因为它也基于QueryableXEventData(事件流目标) 下面是我创建事件会话脚本的示例 CREATE EVENT SESSION [XE_Alter] ON SERVER ADD EVENT sqlserver.object_altered( ACTION(sqlserver.database_name,sqlserver.sql_text)

为什么配置为读取实时扩展事件流的QueryableXEventData总是落后一个事件? “监视实时数据”窗口也是如此,因为它也基于QueryableXEventData(事件流目标)

下面是我创建事件会话脚本的示例

CREATE EVENT SESSION [XE_Alter] ON SERVER 
    ADD EVENT sqlserver.object_altered(
        ACTION(sqlserver.database_name,sqlserver.sql_text)
        WHERE ([sqlserver].[database_name]='AdventureWorks2014')),
    ADD EVENT sqlserver.object_created(
        ACTION(sqlserver.database_name,sqlserver.sql_text)
        WHERE ([sqlserver].[database_name]='AdventureWorks2014')),
    ADD EVENT sqlserver.object_deleted(
        ACTION(sqlserver.database_name,sqlserver.sql_text)
        WHERE ([sqlserver].[database_name]='AdventureWorks2014'))

我们最近遇到了同样的问题,并且能够将其跟踪到Microsoft Connect错误“”(感谢SQL团队联系人)。该链接将引用此Stackoverflow条目和一个非常有教育意义的博客。我们花了好几天的时间,利用人际关系来发现这一点,所以希望这个答案能为其他人节省时间和精力。-Shaun

我们最近遇到了同样的问题,并且能够将其跟踪到Microsoft Connect bug“”(感谢SQL团队联系人)。该链接将引用此Stackoverflow条目和一个非常有教育意义的博客。我们花了好几天的时间,利用人际关系来发现这一点,所以希望这个答案能为其他人节省时间和精力。-Shaun

这已在.NET SQL客户端库的更高版本中修复


Tomer(MSFT)。

这已在更高版本的.NET SQL客户端库中修复


托默(MSFT)。

关于什么的一个事件?我相当确定它使用了轮询方法,因此您将落后于Really live。事件流没有使用轮询,它实际上读取一个内部私有“event_stream”目标,该目标连接到事件会话,该会话使用内存缓冲区的内部副本来防止性能影响。这些都不是真正的实时冲向目标。@JonathanKehayias谢谢你的回答。你能建议一个解决办法吗?对于我的应用程序来说,在1分钟内获得DDL更新是很重要的。事件通知或DDL触发器是捕获DDL更改的途径,但在不知道您的要求或您正在做的事情的全部范围的情况下,我不能对完整解决方案提出太多建议。@JonathanKehayias我需要DDL更新通知项目我在这个项目上工作了两年,在F#社区很受欢迎。如果您可以访问Pluralsight视频库,Tomas Petricek刚刚就F#type提供程序和数据访问进行了非常深入的学习。“Azure和SQL/Demo的类型提供程序:在SQL中存储最新的电影”子章节介绍了我的库。关于什么的一个事件?我相当确定它使用了轮询方法,因此您将落后于Really live。事件流没有使用轮询,它实际上读取一个内部私有“event_stream”目标,该目标连接到事件会话,该会话使用内存缓冲区的内部副本来防止性能影响。这些都不是真正的实时冲向目标。@JonathanKehayias谢谢你的回答。你能建议一个解决办法吗?对于我的应用程序来说,在1分钟内获得DDL更新是很重要的。事件通知或DDL触发器是捕获DDL更改的途径,但在不知道您的要求或您正在做的事情的全部范围的情况下,我不能对完整解决方案提出太多建议。@JonathanKehayias我需要DDL更新通知项目我在这个项目上工作了两年,在F#社区很受欢迎。如果您可以访问Pluralsight视频库,Tomas Petricek刚刚就F#type提供程序和数据访问进行了非常深入的学习。“Azure和SQL/Demo的类型提供程序:在SQL中存储最新电影”这一小节介绍了我的库。