【发布时间】:2011-03-10 10:55:30
【问题描述】:
我有一个 Windows 服务,它使用任务并行库 (TPL) 并行执行大量任务。这将被扩展为处理与外部服务器上的 SQL Server 交互的任务。
TPL 应该擅长测量负载并为任务分配正确数量的并行线程。有没有办法让它知道外部 SQL Server 实例的负载?在本地服务器上为每个任务运行的实际代码非常少,但对数据库的调用可能非常繁重。
由于 TPL 发现本地服务器有大量空闲资源,我的服务是否不会因请求而导致数据库陷入困境,或者是否有已知的方法来处理这个问题?
【问题讨论】:
-
如果有办法从并行任务中提取数据库交互,那将是您的最佳选择。
-
数据库交互是我想要并行执行的操作,因此将其提取到非并行执行中毫无意义...
-
这并不意味着你必须让它完全按顺序排列,但是当分离它时,你将对它有更多的控制权。
标签: c# .net sql-server task-parallel-library