C# SQL Server上的跟踪视图

C# SQL Server上的跟踪视图,c#,sql-server,wpf,linq,C#,Sql Server,Wpf,Linq,我在SQLServer中得到了一个表,它几乎每秒都会从另一个软件(股票价格)更新一次 我需要创建一个WPF应用程序,其中包含一个显示SQLServer视图的网格。(视图只是一个复杂的查询,在stock表和其他一些表上具有内部联接) 但是,由于视图不断更新,我不能真正做到每秒钟SqlDataAdapter.Fill(ds) 到目前为止;我听说过以下技术 SQL依赖关系 结合可绑定LINQ的推送订阅 SQL StreamInsight SQLstream.com 哪一个是实现这一目标的正确方法

我在SQLServer中得到了一个表,它几乎每秒都会从另一个软件(股票价格)更新一次

我需要创建一个WPF应用程序,其中包含一个显示SQLServer视图的网格。(视图只是一个复杂的查询,在stock表和其他一些表上具有内部联接)

但是,由于视图不断更新,我不能真正做到每秒钟
SqlDataAdapter.Fill(ds)

到目前为止;我听说过以下技术

  • SQL依赖关系
  • 结合可绑定LINQ的推送订阅
  • SQL StreamInsight
  • SQLstream.com
哪一个是实现这一目标的正确方法

谢谢

以下是我们的工作:

  • 使用触发器,编写受影响的 推送通知的实体ID 队列表

  • 使用SQL service broker,将通知从队列表发送到所有终端客户端都连接到的通知服务器

  • 将受影响EntityID批次的推送通知事件从通知服务器分发到所有连接的客户端

  • 客户端根据受影响实体的视图重新查询,并相应地更新UI(删除任何已删除的、更新任何已更改的、插入任何新的)

它工作得很好。

以下是我们的工作:

  • 使用触发器,编写受影响的 推送通知的实体ID 队列表

  • 使用SQL service broker,将通知从队列表发送到所有终端客户端都连接到的通知服务器

  • 将受影响EntityID批次的推送通知事件从通知服务器分发到所有连接的客户端

  • 客户端根据受影响实体的视图重新查询,并相应地更新UI(删除任何已删除的、更新任何已更改的、插入任何新的)


它工作得很好。

StreamInsight是一个很好的开端,但您看得不对。 构建StreamInsight输入适配器以读取库存提要。你可以做的不仅仅是阅读它们。您也可以对它们进行分析和其他处理。。。在飞行中。从那里,您将有一个输出适配器连接到SQL Server,一个输出适配器发布WCF双工服务或多播服务(某种网络推送发布服务),并让您的客户机订阅它。如果不需要存储引号,则根本不需要使用Sql Server。
需要注意的一点是,根据您输入的数据量,您可能会淹没Sql Server和/或客户端。StreamInsight可以处理的数据比它们中的任何一个都要多得多——都在内存中(没有磁盘)

StreamInsight是一个良好的开端,但您的看法是错误的。 构建StreamInsight输入适配器以读取库存提要。你可以做的不仅仅是阅读它们。您也可以对它们进行分析和其他处理。。。在飞行中。从那里,您将有一个输出适配器连接到SQL Server,一个输出适配器发布WCF双工服务或多播服务(某种网络推送发布服务),并让您的客户机订阅它。如果不需要存储引号,则根本不需要使用Sql Server。
需要注意的一点是,根据您输入的数据量,您可能会淹没Sql Server和/或客户端。StreamInsight可以处理的数据比它们中的任何一个都要多得多——都在内存中(没有磁盘)

非常感谢,但我不太理解“队列表”和“批量推送通知事件”的概念。所谓队列表,我只是指一个表,它保存已插入、更新或删除的记录的实体类型和ID,直到这些实体类型和ID被刷新到通知服务器为止。出于性能原因,最好让通知服务器进行一些缓冲,一次发送成批实体的通知,而不是在收到通知后立即发送。我需要说的是,这实际上不是一个解决方案,因为您不能为视图编写后处理程序。@Stylus-当然不是。触发器放在基础表上。非常感谢,但我不太理解“队列表”和“批量推送通知事件”的概念。所谓队列表,我只是指一个包含已插入记录的实体类型和ID的表,已更新或已删除-直到这些内容被刷新到通知服务器。出于性能原因,最好让通知服务器进行一些缓冲,一次发送成批实体的通知,而不是在收到通知后立即发送。我需要说的是,这实际上不是一个解决方案,因为您不能为视图编写后处理程序。@Stylus-当然不是。触发器放置在基础表上。