SqlConnection.ClearPool()会影响Web服务器(IIS)的性能

时间:2016-06-28 12:20:44

标签: c# iis sqlconnection sqlperformance

我最近监控了我的sql数据库活动,我在活动监控中发现了大约400个进程。后来我发现问题出在我的连接字符串对象上,即使我完全关闭并处理它也不会被物理清除,所以一旦我暂停我的IIS活动监控的所有流程都会消失。

经过一点点搜索后,我发现我可以清理应用程序池中的所有连接,这样SMSS中的所有无用进程都会被杀死但是

我真的很担心它对网络服务器的影响。确实,这种方法可以清除SMSS中无用的任务,但是对于每个请求,应该真正创建一个新的连接是值得的吗?

考虑到我的应用程序是一种应该处理许多请求的企业应用程序,我非常害怕使用这种方法使IIS服务器崩溃。

请注意我的连接字符串值并没有完全修复所有的requeests,我通过根据请求参数在每个请求中仅更改它的“Application Name”部分使其变量,以获取请求者sql活动监视和sql profiler中的信息。

考虑到我的业务范围是否值得这样做,或者我更好地修复连接字符串值,换句话说这种方法的性能滞后是如此严重以至于我必须改变我的日志记录策略或者它只是稍慢一点? ?

1 个答案:

答案 0 :(得分:1)

  

请注意我的连接字符串值并没有完全修复所有的重量,我通过仅更改"应用程序名称"使其变量。根据请求参数在每个请求中的部分,以便在sql活动监视和sql profiler中获取请求者信息。

这真的很糟糕,因为它杀死了游泳池。您也可以禁用池,但这会带来严重的性能损失(您现在已经支付了费用)。

不要这样做。以不同的方式获取监控信息。

除此之外,SQL Server和.NET都没有400连接的问题。这个异常高,但不会引起问题。

如果你运行应用程序的多个实例(例如对于HA),这将会成倍增加。限制是30k。我不知道为什么会导致应用程序速度下降的任何原因,但这可能会导致您的监控工具出现问题。

相关问题