我有一个应用程序每天导入大量数据,几十万条记录。
数据来自不同的来源。使用 C# 读取数据,然后将其批量插入到数据库中。
然后处理此数据:
- 不同的表被链接
- 生成新表
- 使用复杂的算法更正数据(某些表格的总数必须为零)
大多数处理是在存储过程中完成的。
尽管在 C# 中一些复杂的处理会更简单,但将数据提取到数据集中并重新注入会大大减慢速度。
您可能会问为什么我在将数据插入数据库之前不对其进行处理,但我认为在内存中操作 100,000 条记录是不切实际的,并且基于 SQL 集的命令在创建大量记录时会有所帮助。
这可能会引发使用存储过程及其优缺点的古老问题。(例如,您如何对存储过程进行单元测试?)
我想回答的是您对大量数据的经验以及您如何解决问题。