这里我正在处理一个包含数千万条记录的数据库。我有一个连接到数据库的应用程序,从表中的单个列获取所有数据并对它执行一些操作并更新它(对于 SQL Server - 使用游标)。
对于数百万条记录,更新需要非常非常长的时间。所以我想通过
让它更快- 使用多个线程,每个线程都有一个独立的连接。
或
- 通过在所有线程中使用单个连接来触发更新查询。
哪个更快,或者如果您有任何其他想法请解释。
我需要一个独立于数据库类型的解决方案,或者即使您知道每种数据库类型的具体解决方案,也请回复。
最佳答案
您尝试实现的加速不会起作用。相反,它会减慢整体处理速度,因为数据库现在还必须保持多个连接/ session /事务同步。
为重复和可比较的操作保持尽可能少的连接/事务。 如果您觉得花费的时间太长,也许可以尝试分析是否可以以某种方式优化查询。另请查看适合您的问题的特定于数据库的扩展(即批量操作)。
关于c# - 从应用程序的多个线程到数据库的多个连接是否会提高插入查询性能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/605607/