gpt4 book ai didi

c# - 在内存中替代数据集

转载 作者:行者123 更新时间:2023-11-30 15:41:18 24 4
gpt4 key购买 nike

我正在将一个复杂的过程从 SQL 转移到 .NET 应用程序。我通过仅从 SQL 中提取所需的数据,然后存储在数据表中来采取蛮力方法。使用带步进的管道模式,我分解了可以并行完成的进程(不依赖于其他进程,也不处理相同的数据位)。

一切都很好,但我想知道是否有比 DataSet/DataTable 结构性能更好的内存中 sql 解决方案。我们一次谈论 50k 行,最多 1m 支持数据行(读取 5b 行)。 1 行(包含所有支持数据行)的行大小可能约为 1K avg(由于字符串较大)。

我的问题特别针对数据集的性能、内存开销和持久性。我需要将每个阶段的数据序列化到磁盘以用于恢复目的。

将行映射到强类型模型会更好吗?我不需要数据集的任何关系或其他好处;我使用并行处理将大部分搜索功能替换为自己的搜索功能。

数据只使用原始类型,没有 blob、流、地理等。

最佳答案

对于本地 SQL 操作,请查看 SQLite。我不记得它是否可以在内存中独占运行,但如果磁盘缓存和事务日志关闭,它可能会非常接近。

Steve Shaunessey 多年前在 Borland 开发了一个快速的内存中 SQL 引擎。我不知道它是否曾经被产品化过。浏览一下 Embarcadero.com 网站,看看他的作品是否有任何遗存。

我注意到 aidaim.com 宣传内存中的 SQL 引擎。没有相关经验,仅供引用。

还可以考虑使用 LINQ 进行内存中查询操作。如果你注意你在做什么,LINQ 的查询组合和延迟执行在大数据 IMO 上工作得很好。而且,不需要 SQL 解析器。

关于c# - 在内存中替代数据集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8513404/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com