仔細研究ADO.Net連接池使用連接字符串
說了這么多ADO.Net連接池的相關注釋,那我們什么時候需要使用到Connection Pool呢?一般而言這應該由您的項目需求而決定。但是由于所有的額外檢查都會增大ADO.net Connection Pool 對系統(tǒng)的開銷。
如果您的項目是ASP.net/WebService 我們會建議您使用Connection Pool因為這個功能能夠幫助您減少由于頻繁創(chuàng)建連接帶來的巨大系統(tǒng)開銷。
如果您的系統(tǒng)是一個C/S模型結構,我們會不建議您使用Connection Pool,這是由于一般而言,在C/S這樣的模型中,每一個用戶都是使用自己的用戶名密碼去連接后臺數據庫,使用的都是不同的Connection String,基本不會出現頻繁出現打開/關閉數據庫連接的問題。#t#
實際上在C/S模型中,您可以一直使一個Connection保持open的關閉,而不Close,這樣更能夠提高您系統(tǒng)的性能,不會由于Connection Pool的額外檢查而帶來系統(tǒng)資源的消耗,同時也不必擔心一直打開的Connection長時間的占用了連接,導致其他的連接無法從connection pool 及時獲取到。(因為您根本就不需要使用到connection pool)。
- protected override void Dispose(bool disposing)
- {
- if (disposing)
- {
- this._userConnectionOptions = null;
- this._poolGroup = null;
- this.Close();
- }
- this.DisposeMe(disposing);
- base.Dispose(disposing);
- }
當連接返回pool時,它的時間和創(chuàng)建時間相比,如果它的存在時間超過了Connection Lifetime,它被釋放。這對于新加入集群的服務器平衡是很有用的。值0可以保證連接有***時限。