Dot-Net
在 .NET 中管理數據庫連接的最佳實踐是什麼?
關於在 .NET 應用程序中管理數據庫連接的最佳實踐——我知道,一般來說,傳遞連接對像是不好的。
但是,我有一些特定的好奇心:
1. 我有兩個不同類的業務對象實例,它們處於父子關係(子是私有的)。以下哪個最好?
- 保持一個私有靜態連接打開和共享,由兩個對象使用,並保持打開狀態,直到父對像被釋放。
- 保持兩個私有靜態連接打開,每個對像一個,在對像被處理之前不要關閉。
- 不要保持靜態連接;為每個需要它的方法打開並隨後關閉一個新連接。但是,我的大多數方法只執行 1-3 個查詢,所以這似乎效率低下……?
2.我的第二個問題本質上是一樣的,只是針對單一形式。這裡最好的是什麼?
- 在表單的整個生命週期內保持一個私有靜態連接打開和共享。
- 不要保持靜態連接;為需要它的表單中的每個方法打開並隨後關閉一個連接(同樣,每個方法只有 1-3 個查詢。)
我的理解是,連接應該只在需要時保持打開狀態。大多數時候我在 Using 語句中看到了連接,類似於
using (DBConnection db = new DBConnection(connectString)) { //do stuff }
此連結可能會有所幫助:使用 ADO.NET 的最佳實踐
這是一個有趣的摘錄。
為獲得最佳性能,請僅在需要時保持與數據庫的連接打開。此外,減少為多個操作打開和關閉連接的次數。
我一直遵循在 using 塊中打開連接的做法,以便始終呼叫 Dispose 方法(以及因此的 Close 方法)而不用擔心它。使用這種方法,我從未遇到過性能不佳與過多的並發連接或過多的設置或拆除操作相關聯的情況。