SqlConnection.ClearPool()对IIS性能的影响

本文关键字:性能 影响 IIS ClearPool SqlConnection | 更新日期: 2023-09-27 17:52:52

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

经过一番搜索后,我发现我可以从应用程序池中清除所有连接,以便从SMSS中杀死所有无用的进程,但是

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

考虑到我的应用程序是一种企业应用程序,应该处理很多请求,我很担心使用这种方法会使IIS服务器崩溃。

请注意,我的连接字符串值不完全固定为所有的请求,我使它的变量仅改变"应用程序名称"部分,在每个请求根据请求参数的目的,在sql活动监控和sql分析器获取请求者的信息。

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

SqlConnection.ClearPool()对IIS性能的影响

请注意,我的连接字符串值不完全固定为所有的请求,我使它的变量,根据请求参数,在每个请求中只改变"应用程序名称"部分,以便在sql活动监控和sql profiler中获取请求者信息。

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

不要那样做。通过其他方式获取监控信息

除此之外,SQL Server和。net都没有400个连接的问题。这是不寻常的高,但不会造成问题。

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