Dot-Net

我應該在我的數據訪問層中保留一個 sqlconnection 嗎?

  • May 19, 2009

似乎快速打開和關閉 sqlconnections 涉及很多成本。我應該堅持一個連接(一個,每個客戶端,每個數據庫),還是在需要時繼續聲明一個新的 sqlconnection 對象,並確保我自己清理乾淨?

你做了什麼?什麼效果好,什麼效果不好?

在大多數情況下,.NET 連接池會為您處理這個問題。即使您通過程式碼打開和關閉連接,這也不是幕後發生的事情。當您實例化並打開一個連接時,.NET 會在連接池中查找具有相同連接字元串的現有連接,然後將其提供給您。當您關閉連接時,它會返回到連接池以供將來使用。

如果您使用的是 SQL Server:http: //msdn.microsoft.com/en-us/library/8xx3tyca.aspx

OLE DB、ODBC、Oracle:http: //msdn.microsoft.com/en-us/library/ms254502.aspx

Dino Esposito 文章: http: //www.wintellect.com/Articles/ADO%20NET%20Connection.pdf

您可以使用連接字元串名稱/值覆蓋預設池行為:http: //msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlconnection.connectionstring.aspx。請參閱包含“連接生命週期”的第二個設置表。

引用自:https://stackoverflow.com/questions/247247