我正在将一个复杂的过程从 SQL 移到一个 .NET 应用程序。我采取了一种蛮力方法,只从 SQL 中提取所需的数据,然后存储在数据表中。使用带步进的管道模式,我分解了可以并行完成的进程(不依赖于其他进程,也不处理相同的数据位)。
一切都很好,但我想知道是否有一个内存中的 sql 解决方案,它的性能比 DataSet/DataTable 结构更好。我们一次讨论 50k 行,最多支持 1m 行数据(读取 5b 行)。1 行(包含所有支持的数据行)的行大小可能约为 1K 平均(由于大字符串)。
我的问题专门针对 DataSet 的性能、内存开销和持久性。我需要将每个阶段的数据序列化到磁盘以进行恢复。
将行映射到强类型模型会更好吗?我不需要数据集的任何关系或其他好处;我使用并行处理替换了大部分搜索功能。
数据仅使用原始类型,没有 blob、流、地理等。