2015-09-16 88 views
0

我的wcf服務操作約定運行一個代碼來初始化數據庫連接以獲取數據。數據庫初始化確實需要一些時間,導致性能低下。有什麼我可以做我的WCF服務來克服這種情況。使用我的桌面應用程序,連接只需設置一次,因此它不是什麼問題。WCF服務:改進數據庫連接初始化

ServiceBehaviour當前被設置爲instanceContextMode = InstanceContextMode.PerCall和ConcurrencyMode = ConcurrencyMode.Multiple

我應該使用一個persession上下文模式或任何狀態行爲。如果有什麼我可以處理的東西沒有想法,而不是依靠數據庫團隊來糾正初始化問題?

回答

0

您可以使用連接池避免每個請求上的握手和新連接。 這裏,關於SQL-Server的一些文檔:https://msdn.microsoft.com/en-us/library/8xx3tyca.aspx

你也可以使用單例行爲甚至是靜態連接,但是這兩個最後的選項不是最好的選擇。

+0

嘿感謝分享的想法。由於我需要連接到公司內部開發的文件系統數據庫,因此在數據庫方面沒有太多的選項可以解決這種情況。然而,我渴望瞭解更多關於如何通過單例和靜態連接來實現這一點。還有這樣做的缺點是什麼? – battech

+0

正如你所說你的數​​據庫是一個文件系統,我不認爲你會有使用靜態連接的問題。我想這個文件系統不會像SQL Server或Oracle(連接池,超時,狀態等)那樣管理數據庫引擎的連接,所以我認爲使用靜態連接可能是一個好方法,但它需要測試。單例實現可以在你的服務中完成。請記住,您將只有一個實例用於所有呼叫,這可能會導致性能問題,請謹慎使用。 –