c# - 从应用程序的多个线程到数据库的多个连接是否会提高插入查询性能?

标签 c# multithreading database-connection

这里我正在处理一个包含数千万条记录的数据库。我有一个连接到数据库的应用程序,从表中的单个列获取所有数据并对它执行一些操作并更新它(对于 SQL Server - 使用游标)。

对于数百万条记录,更新需要非常非常长的时间。所以我想通过

让它更快
  1. 使用多个线程,每个线程都有一个独立的连接。

  1. 通过在所有线程中使用单个连接来触发更新查询。

哪个更快,或者如果您有任何其他想法请解释。

我需要一个独立于数据库类型的解决方案,或者即使您知道每种数据库类型的具体解决方案,也请回复。

最佳答案

您尝试实现的加速不会起作用。相反,它会减慢整体处理速度,因为数据库现在还必须保持多个连接/ session /事务同步。

为重复和可比较的操作保持尽可能少的连接/事务。 如果您觉得花费的时间太长,也许可以尝试分析是否可以以某种方式优化查询。另请查看适合您的问题的特定于数据库的扩展(即批量操作)。

关于c# - 从应用程序的多个线程到数据库的多个连接是否会提高插入查询性能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/605607/

相关文章:

c++ - 如何判断哪一行代码创建了新线程(gdb)?

eclipse - 如何在Eclipse Database Tools for Oracle中禁用自动提交?

mysql - SQL连接表有两个 'ON'关键字?

c# - 带有谓词的 .Any 是否必须在查找 .Any 之前生成结果列表

c# - C# 中需要 xmlElement 解析器

c# - 自定义 .Net 库或现有库来处理序列格式?

c# - ASP 中的 Server.CreateObject(progId) 如何工作?

c# - 超时后从集合中删除项目

java - 使线程在 Java 中以特定顺序启动

java - 使用jdbc查询两个数据库到同一个sql server实例