我正在构建/维护一些规划工具,具有以下特征:
-data从MsAccess / SQLServer加载(只读)到C#framework 3.5。数据从ERP系统加载到SQLServer / MsAccess中。
- 加载了大量的维护数据(比如来自各个表的总共2000.000条记录),所有这些数据都需要同时进行规划。
目前,我使用的是使用tableadapter填充的类型化数据表。然后,我遍历每个表中的行,创建包含相同数据的自定义对象。我的其余代码只适用于那些自定义对象。
这种方法的替代方案是什么,在可维护性和加载速度方面(从SQL Server / MSAccess到内存),这种方法的替代方案的优缺点是什么?
当前方法的主要缺点是我需要加载整个表,而在某些情况下,我可以动态地确定需要检索哪些记录。但是目前的框架似乎并没有为此提供简单的支持。
答案 0 :(得分:1)
你的方法对我来说听起来很合理 它的主要优点是very simple 我看到改变它的唯一原因是你确实遇到了性能问题 在这种情况下,我建议将数据加载到块中(例如,一次5000行,类似于此) 如果您为应用程序和数据库引擎使用不同的服务器,则可以在处理当前批处理时在单独的线程中加载下一批处理。
但是,再次 - 如果它的工作方式正常 - 那就好了。
P.S。就像billinkc一样,我对msAccess感到好奇 - 它能否在这些数据量方面表现良好?
答案 1 :(得分:1)
为了提高性能并避免重新发明轮子,我强烈考虑使用ETL库 - 例如RhinoETL