什麼是連線集區?概念、運作方式
連接到資料庫伺服器通常包含幾個耗時的步驟。必須建立實體通道,例如通訊端或具名管道、必須與伺服器進行初始交握、必須剖析連接字串資訊、伺服器必須驗證連線、必須執行檢查以登記在目前交易中,等等。
連線集區
為了將開啟連線的成本降到最低,ADO.NET 使用稱為連線集區的最佳化技術,以將重複開啟和關閉連線的成本降到最低。連線集區的處理方式會針對 .NET Framework 資料提供者不同。
怎麼運作的
連線集區牽涉到開放式資料庫連線 (ODBC) 連線的集區,以減少需要在大量存取的伺服器上開啟和關閉 ODBC 連線的頻率。連線集區可改善已啟用 ODBC 的 Web 應用程式的 ASP 效能,並提供管理連線逾時的正常方式。
若要在 IIS 上使用 ODBC 連線集區,請執行下列步驟:
在控制台中使用 ODBC 來設定資料庫驅動程式。
在 Microsoft Windows NT 登錄中啟用連線集區。
在 ASP 頁面需要資料存取之前,請在 Microsoft ActiveX 資料物件 (ADO) 程式碼中開啟個別連線,並在存取資料後立即釋放連線。
啟用連線集區之後,ODBC 驅動程式會在建立新的連線以回應 ODBC 要求之前,先檢查連線集區是否有可以重複使用的閒置連線。釋放連線時,它們會傳回連線集區,而不是關閉。
新增連線
系統會針對每個唯一的連接字串建立連線集區。建立集區時,會建立多個連線物件並將其新增至集區,以便滿足最小集區大小需求。連線會視需要新增至儲存區,最多指定的儲存區大小上限 (預設值為 100)。當連接關閉或處置時,它們會釋放回儲存區。
移除連線
連線集區程式會在集區閒置大約 4-8 分鐘之後,或如果集區偵測到與伺服器的連線已切斷,則會從集區中移除連線。請注意,只有在嘗試與伺服器通訊之後,才能偵測到已切斷的連線。如果發現連線不再連接至伺服器,則會將其標示為無效。只有在關閉或收回無效連線時,才會從連線儲存區中移除無效的連線。
如果連線存在至已消失的伺服器,則即使連線集區程式尚未偵測到已切斷的連線並將其標示為無效,也可以從儲存區中繪製此連線。這是因為檢查連線是否仍然有效的額外負荷會導致伺服器發生另一個往返,從而消除具有集區程式的好處。發生這種情況時,第一次嘗試使用連線時會偵測到連線已切斷,並擲回例外狀況。