2011-06-20 44 views
-1

我们有一个报表工具,可以抓取大量记录。有时它可能是100万条记录。我们一直在存储这个数据。我想知道是否有更好的对象来存储它。我需要能够以各种方式聚合数据。比Datatable效率更高

更新: 是的。个人认为,不应该得到那么多记录。这不是我想要去的方向。

我也在使用Oracle

更新更新

对不起慢了,但总有火在这里放了出来。主要问题是他们耗尽内存并且出现内存错误。他们在从内存释放数据表时遇到问题,并且绑定到datagridview。我想我正在寻找的是一个重量较轻的物体,它不会占用太多的空间。

想了一会儿之后,确实没有任何意义可以像提及的diagonalbatman那样获得那么多的数据。此外,如果我们只有几个人正在使用它与这些问题。它如何扩展。

不幸的是,我有一位不愿意听的老板和一个太过于“是的先生”型态度的离岸团队。他们正在序列化原始数据(作为XML文件)并发布原始数据Datatable,我认为这根本不是一个好方向。

@diagonalbatman - 好奇了,你有这个

+2

您是否执行过任何测试以确定您的瓶颈实际存在于哪里? –

+0

我不确定这个问题是否在当前状态下可以回答。请提供更多的细节。数据是否与您存储的其他数据相关?等等 –

+0

你有问题的数据表?你想克服什么?更多细节将帮助我们更好地帮助您。 – Bueller

回答

2

为什么你需要1个米利翁记录画下来到你的应用的例子吗?

你不能在数据库上做报告合并/聚合吗?这样可以更好地利用数据库的资源(毕竟这是RDBMS的设计目标),那么您可以将您的应用程序专注于使用较小的整合集合?

+0

我同意这一点,但他们希望我走的方向是有数据可用。 – H20rider

+0

这很好,但你能不能设计应用程序只在需要时“获取”数据? – diagonalbatman

+0

Yah。同意。认为用户需要那么多数据是荒谬的。 – H20rider

1

我会建议你尝试几个选项来验证,特别是根据你需要的能力以各种方式聚合数据。

1)它可以在数据端通过适当的查询进行聚合,这可能是最好的解决方案。 2)如果您使用POCO,LINQ会改进您当前的内存和性能特征。 LINQ是否允许您进行所需的聚合。

衡量您关心的特征并尝试不同的选项。

1

你想要的是数据立方体。根据您拥有的数据库类型,您应该查看构建一些多维数据集。