【发布时间】:2012-02-14 03:22:12
【问题描述】:
我正在尝试找出设计我的 C# 应用程序的最佳方法,该应用程序利用来自 SQL Server 后端的数据。
我的应用程序必须定期从我的应用程序的循环中一次更新 55K 行。在进行更新之前,它需要检查要更新的记录是否存在。
如果存在,它会更新一个字段。 如果不是,它将执行 4 个字段的插入。
要更新的表有 600K 行。
- 从我的应用程序处理这些更新/插入的最有效方法是什么?
- 我应该在 C# 中创建一个数据字典并加载 600K 记录并首先查询字典而不是数据库吗?
- 这是一种更快的方法吗?
- 我应该使用存储过程吗?
- 根据这种情况,实现最佳性能的最佳方法是什么?
【问题讨论】:
-
此 upsert 是否是由于某些用户交互而发生的?如果是这样,可能值得看看业务规则是否允许由于在非工作时间将流程作为某些计划服务的一部分运行而引入一些延迟。无论哪种方式,如果存在瓶颈,您仍然希望优化性能。
-
最近提出的问题,见这里:stackoverflow.com/questions/8981451/…