2008-12-11 41 views
4

夥計們,我打算使用企業庫(4.1),尤其是DAAB。這裏是我有問題:DAAB,使用數據庫實例的最佳方法是

  1. 什麼是最好的辦法,爲什麼:

    • ,當我需要運行一個 的DbCommand我創建使用 DatabaseFactory.CreateDatabase數據庫實例 (每次) ;

    • 我有一個實例化 數據庫(使用相同的 的CreateDatabase()靜態方法)和 像公共財產 返回實例化數據庫的基類。

  2. 它是「重」還是快/慢創建數據庫類的實例?每次需要DbCommand時,如果我這樣做,該怎麼辦?

謝謝。

回答

0

這不是問題。創建數據庫類的開銷很小。

但是,實際創建數據庫連接的開銷很高,這就是Windows執行連接池的原因。簡而言之,當進程第一次創建數據庫連接時,它會在連接池中查找具有完全相同連接字符串的現有連接。如果它找不到,它會創建一個新的(昂貴的操作)。當進程關閉它並讓它超出範圍時,它不會實際關閉與數據庫的連接,而是將其放入連接池。在同一個進程創建具有相同連接字符串的另一個連接之前,會一直存在。然後,它會爲您提供來自連接池的已經存在的一個。

您可以關閉連接池(通過連接字符串中的設置),但這通常是一個非常糟糕的主意。

相關問題