首页 新闻 会员 周边 捐助

关于使用线程池访问数据库时线程配置数量 c#

0
[已解决问题] 解决于 2016-10-18 20:26

现在服务器上有一个后台服务,这个服务会从其他地方取来需要处理的数据,然后再本地做查询计算,然后将结果更新到远程服务器,本地查询操作较为费时,一个sql连接查询大约需要1分钟时间想充分利用服务器性能(主频2.1G,4U,单cpu为8核16线程),我应该配置线程池的最大线程数是多少比较合适,是否有一般通用的合理线程数计算公式?

MSky的主页 MSky | 菜鸟二级 | 园豆:436
提问于:2016-10-14 16:41
< >
分享
最佳答案
0

应该少强行设定线程数,这种东西有需要就申请,何必额外加个人为限制。

这里你更多的需要考虑连接数,如果你一个sql需要跑一分钟,那么这一分钟这个连接就被一直占用着,而且跑一分钟的sql肯定对db压力也不小,那么你开个500线程一起跑(假设都能够拿到连接),那么你这个db估计也就离跪没多远了。

所以你这里应该更加关注如何降低sql执行时间,而不是关注如何限制线程数。

奖励园豆:5
Daniel Cai | 专家六级 |园豆:10424 | 2016-10-14 16:53

 sql执行时间暂时实在是没有什么办法去缩短,您说的的确是问题的根源,有没有什么办法能动态控制sql连接数,并充分利用cpu

MSky | 园豆:436 (菜鸟二级) | 2016-10-14 17:00

@MSky: 没办法,你这里的木桶效应太明显,不可能在不动sql前充分利用资源。

Daniel Cai | 园豆:10424 (专家六级) | 2016-10-14 22:52
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册