当程序和数据库进行交互时,会进行创建连接、获取数据、断开连接这三步操作,其中创建连接、断开连接是比较消耗资源和时间的操作,
为了避免资源被这样无谓消耗,sqlserver引入了连接池的解决方案。
数据库会在第一次响应程序的请求时,一次创建多个连接,数量由Min Pool Size控制。
当程序发起请求的数量大于Min Pool Size且小于Max Pool Size时,数据库会为程序继续创建可用的连接,
当发起请求的数量大于Max Pool Size时,则会进入等待,当等待的时间大于Connection Timeout,则返回连接超时的错误。
交互完毕后,如果交互时间小于Connection Lifetime,则会将使用完毕的连接继续放入连接池等待被再次使用,
如果交互时间大于Connection Lifetime,则会将使用完毕的连接销毁,不会放入连接池。
Pooling(池):
确定是否使用连接池。如果值为真的话,连接就要从适当的连接池中获得,或者,如果需要的话,连接将被创建,然后被加入合适的连接池中。其缺省值为true。
Connection Timeout(连接超时):
一个到服务器的连接在终止之前等待的时间长度(以秒计),缺省值为15。
Max Pool Size(连接池的最大容量):
连接池允许的连接数的最大值,其缺省值为100。
Min Pool Size(连接池的最小容量):
连接池允许的连接数的最小值,其缺省值为0。
Connection Lifetime(连接生存时间):
当一个连接被返回到连接池时,它的创建时间会与当前时间进行对比。如果这个时间跨度超过了连接的有效期的话,连接就被取消。其缺省值为0,单位以秒计。