2012-05-10 53 views
0

我們正在爲我們的AspNet webapp使用NHibernate和OpenSessionInView模式。OpenSessionInView模式,ADO和性能

使用ADO連接(SqlServer),我們希望每次訪問頁面時都要登錄到不同的數據庫。爲此,我們是否需要在每次「頁面加載」時打開連接,執行插入操作,然後關閉連接,還是可以在所有請求之間保持相同的連接?

鎖和併發訪問呢?我們只在這個數據庫上插入。

回答

1

是的,我會去open --> insert --> close.原因是SQL連接 - 和大多數數據庫連接(取決於驅動程序)彙集在一起​​,因此打開一個新的連接真的意味着從池中獲得連接,這是便宜的(除非你在池中的連接不足)。另一方面,如果您保持開放連接,則最終會出現TON併發問題,因爲您必須爲每個請求同步對此連接對象的訪問。 A 噩夢,換句話說。事實上,你會阻止你的要求,並大大減緩的事情。

再一次,你並沒有真正提高性能 - 相反 - 你正在複雜化你的應用程序。