Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 用.net实现实时数据存储和访问_C#_.net_Database_Real Time - Fatal编程技术网

C# 用.net实现实时数据存储和访问

C# 用.net实现实时数据存储和访问,c#,.net,database,real-time,C#,.net,Database,Real Time,有没有人有过接收和更新大量数据、存储数据、排序数据以及快速可视化数据的经验 最好,我正在寻找一个.NET解决方案,但这可能不实用 现在了解详情 我将每秒收到大约1000次更新,一些更新,一些新的数据记录行。但是,它也可能是突发驱动的,有时会有5000个更新和新行 到一天结束时,我可能有400万到500万行数据 我既要存储它们,又要在UI中显示用户更新。用户界面允许用户对数据应用多个过滤器,以显示他们想要的内容。我需要更新所有记录,并向用户显示这些更新 我的视觉更新速度为1 fps 有人对这个问题

有没有人有过接收和更新大量数据、存储数据、排序数据以及快速可视化数据的经验

最好,我正在寻找一个.NET解决方案,但这可能不实用

现在了解详情

我将每秒收到大约1000次更新,一些更新,一些新的数据记录行。但是,它也可能是突发驱动的,有时会有5000个更新和新行

到一天结束时,我可能有400万到500万行数据

我既要存储它们,又要在UI中显示用户更新。用户界面允许用户对数据应用多个过滤器,以显示他们想要的内容。我需要更新所有记录,并向用户显示这些更新

我的视觉更新速度为1 fps

有人对这个问题有什么指导或指导吗?我无法想象我是第一个不得不处理这种事情的人

一开始,我想是某种内存中的数据库,但一旦我得到足够大的数据集,它是否足够快,可以在一天快结束时查询更新?或者这一切都依赖于智能索引和查询吗


提前感谢。

可能Oracle更适合您的RDBMS解决方案。你的问题是,在这个“关键”级别上,有太多的变量和条件需要处理。不仅是软件,还有你可以拥有的硬件(成本:)、连接速度、你期望的公共用户系统设置等等。。。
祝你好运。

这是一个非常有趣且具有挑战性的问题

我将采用处理器实现排序、过滤、聚合等的管道设计。管道需要一个异步(线程安全)输入缓冲区,该缓冲区将及时处理(根据1fps要求,不超过一秒钟)。如果你做不到这一点,你需要根据问题的性质将数据排在某处、磁盘上或内存中

因此,UI需要以拉方式而不是推方式实现,您只需要每秒更新一次

对于数据存储,您有几个选项。使用数据库不是一个坏主意,因为您无论如何都需要持久化数据(我想也是可以查询的)。如果您使用的是ORM,您可能会发现NHibernate与其高级二级缓存相结合是一个不错的选择


许多考虑因素也可能与Ayende在设计NHProf(NHibernate的实时分析器)时所做的类似。他在网上写了一系列关于他们的帖子

您需要一个RDBMS,如SQL Server 2008(在适当的硬件上,并具有适当的RAID级别)。当select*from表有一百万行时,它的性能会如何?另外,如果在一端显示这些行,如何处理数据库的更新?是否有一个推送机制,或者我必须每秒钟对其进行一次投票以进行更改?没有人会给你一个数字,变量太多了。你得自己试试。用测试数据填充数据库。如果是您向数据库添加数据,则不必进行轮询。我不建议使用NHibernate进行此操作,插入/更新1000-5000行/秒不是NH的目的。但是管道这件事听起来很有趣,你可以把它和定制的sql批量加载结合起来。NH对(几乎)所有东西都有扩展点。为什么Oracle超过了SQL Server呢?@John I说“可能是”,只是看了问题的基本描述,根据我的个人经验,我认为银行和研究机构的大型数据库(如果我工作过一段时间)是基于Oracle的,而不是MS SQL Server。事实上,我的回答并不是纯粹的技术性的,因为仅仅通过阅读这篇文章就很难在这个问题上提出真正实用的建议,我认为,祝你好运。好吧,根据你的回答,我投了反对票。这并不是暗示甲骨文可能更好的好理由。你没有经验说它更好;你有经验说它被使用了。我不太同意你的反对意见,因为我的目的是和那个家伙分享我的经验,因为你知道,在这样的组织中没有随意的选择,所以他可能也希望朝这个方向看。并没有任何给我加分的意图,老实说,我并没有真正的计分系统。我认为答案是否完全无用应由他来决定。当做