【问题标题】:Track Views on SQL ServerSQL Server 上的跟踪视图
【发布时间】:2011-03-03 11:40:49
【问题描述】:

我在 SQL Server 中有一个表,它几乎每秒都从另一个软件(股票价格)更新。

我需要创建一个 WPF 应用程序,其网格显示来自 SQL Server 的视图。 (视图只是对股票表和其他一些表进行内部连接的复杂查询)。

但由于视图不断更新,我真的不能每秒都做SqlDataAdapter.Fill(ds)

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

  • SQL 依赖项
  • 推送订阅与 Bindable-LINQ 相结合
  • SQL StreamInsight。
  • SQLstream.com

哪一种是实现这一目标的正确方法?

谢谢

【问题讨论】:

    标签: c# sql-server wpf linq


    【解决方案1】:

    这是我们的工作:

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

    • 使用 SQL 服务代理,将来自队列表的通知发送到连接所有终端客户端的通知服务器

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

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

    效果很好。

    【讨论】:

    • 非常感谢,但是我对“队列表”和“批量推送通知事件”的概念不太了解。
    • 通过队列表,我只是指一个表,其中包含已插入、更新或删除的记录的实体类型和 ID——直到这些被刷新到您的通知服务器。出于性能原因,最好让通知服务器做一些缓冲,并一次性发送一批实体的通知,而不是一收到通知。
    • 我需要说的是,这实际上不是一个解决方案,因为您实际上不能为 Views 编写 AfterTriggers。
    • @Stylus - 当然不是。触发器放置在基础表上。
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-05
      • 2020-02-19
      • 1970-01-01
      • 1970-01-01
      • 2011-02-21
      相关资源
      最近更新 更多