我的设想是:
创建一个将运行异步此进程的windows服务。
我创建了"x“线程数,每个线程都有自己的组织服务代理,可以并行执行插入。
结果是:
我可以看到40%到50%的改进,大约10个线程。
超过这个数目的并发线程不会有帮助。
我想知道哪些设置阻止线程并行运行,以及如何设置这些设置?
在windows服务app.config中,我尝试了这个设置,但没有任何改进:
<system.net>
<connectionManagement>
<add address = "*" maxconnection = "100" />
</connectionManagement>
</system.net>我猜WCF组织服务将为我拥有的每个服务代理创建一个会话,并且它可以处理超过10个?
发布于 2015-01-07 00:40:18
根据我的经验,多线程只能把你带到目前为止。在某个时候,web服务器正在尽可能快地处理请求(如果作为事务的一部分执行,插件也可能是一个相当大的瓶颈)。我会检查一下see服务器和数据库服务器的性能,看看它们是否是瓶颈。
如果您正在使用rollup 12+,那么将您的事务批处理到一个多执行中将获得更好的性能。
我还希望您不是为每条记录创建一个新线程来插入/更新,也因此创建了一个新的IOrganizationService。考虑一次给一个线程10-100条记录,然后让它处理所有这些。
https://stackoverflow.com/questions/27808153
复制相似问题