3

我有一个问题想问任何有 i4o 或 PLINQ 经验的人。我有一个需要查询的大对象集合(大约 400K)。逻辑非常简单明了。例如,有一个 Person 对象的集合,我需要找到与相同 firstName、lastName、datebirth 或 FirstName/lastname 的首字母等匹配的人员。使用 LINQ to Object 只是一个耗时的过程。

我想知道如果 i4o (http://www.codeplex.com/i4o )

或 PLINQ 可以帮助提高查询性能。哪一个更好?如果有任何方法。

谢谢!

4

3 回答 3

5

对于 400k 个对象,我想知道数据库(进程内或进程外)是否不是更合适的答案。这然后抽象索引创建过程。特别是,任何数据库都将支持不同列上的多个不同索引,从而使引用的查询都非常可支持,而无需专门为每个查询编写代码(只需让查询优化器担心)。

在内存中使用它可能是有效的,但您可能(使用 vanilla .NET)必须做更多的手动索引管理。听上去,i4o 肯定值得研究,但我没有任何现有的比较数据。

于 2009-03-02T03:33:54.937 回答
3

i4o :旨在通过使用像旧的关系数据库天这样的索引来加速使用 linq 的查询。

PLinq:旨在使用额外的 cpu 核心来并行处理查询。

如果性能是您的目标,这取决于您的硬件,我说使用 i4o 将会有很大的改进。

于 2009-12-03T10:52:04.493 回答
0

我没有用过 i4o,但我用过 PLINQ。

如果不知道您正在尝试改进的查询的具体细节,很难说哪个(如果有的话)会有所帮助。

PLINQ 允许在适用的情况下对查询进行多处理。然而,有时并行处理无济于事。

i4o 看起来有助于索引,这将加快一些调用,但不是其他调用。

底线是,它取决于正在运行的查询。

于 2009-03-02T03:09:19.923 回答