2013-05-28 32 views
1

我的同事正在辯護說,應用程序的單個數據庫連接比使用池打開和關閉應用程序要好得多和快得多。應用程序的單個數據庫連接

他有一個ApplicationStart方法,他在Application('db'),並保持此應用程序之間的連接。這個應用程序主要包含只讀數據。

我該如何說服他?

回答

5

這很大程度上取決於這裏的「應用程序」。如果這是一個客戶端應用程序,它可以在單個線程上工作並順序執行,那麼坦率地講,兩種方式都不會有明顯的差別。在這種情況下,如果使用池,它基本上是一個1項池,並且從池中打開一個連接實際上是瞬間的(並且與網絡IO相比肯定不明顯)。在這種情況下,我會仍然說使用內置池,因爲它會避免假設當你改變方案。但是,如果您的應用程序使用多個線程或通過任何其他機制一次執行多個事件(async)等,則使用單個連接將會非常糟糕;要麼失敗,要麼你需要圍繞連接進行同步,這會嚴重限制你的工作。請注意,任何服務器端應用程序(任何類型的Web應用程序,WCF服務,SOAP服務或套接字服務)都會對他的想法做出非常嚴重的反應。

也許主要說服他的主要方法很簡單:讓他證明一下。要求一個可重複的測試/演示,顯示這種差異。

相關問題