了解ADO.NET'连接生命周期'

时间:2018-06-05 20:00:43

标签: c# sql .net ado.net connection-pooling

我遇到了一个高流量的应用,偶尔会出现我尝试诊断的各种缩放超时问题。该应用程序在SQL连接字符串中具有以下设置:

Min Pool Size=5;Max Pool Size=100;Connect Timeout=8;Connection Lifetime=30;

这当然意味着游泳池中至少有5个连接,PerfMon确认。

但如果我理解正确的Microsoft文档,连接生命周期设置将会破坏已存在超过30秒的已关闭连接

  

当连接返回到池时,其创建时间为   与当前时间相比,如果连接被破坏   该时间跨度(以秒为单位)超过Connection指定的值   寿命。

由于这5个(或更多)连接经常被使用,我是否正确地认为它们中的任何一个都不会超过30秒?因此,每半分钟左右,我的应用程序将一直回到SQL来握手5个以上的全新连接?

PerfMon建议连接数量从不低于5,因此我没有证据表明上述情况发生(除非它在视觉上是即时的)。我误解了吗?

此外,this ancient article确认只对Close()执行生命周期检查,因此此设置在解决任何连接泄漏时都会有优势?

0 个答案:

没有答案