2009-12-29 68 views
0

當使用C#OPEN語句打開到DB的連接時,會影響Web服務器性能還是僅影響數據庫? 那麼,如何重複打開和關閉數據庫連接會影響Web服務器和數據庫。 有人可以請給我一些關於這方面的見解。謝謝。開放連接的開銷

回答

0

由於數據庫和網絡服務器都在運行,它會影響端到端的響應時間。簡而言之,即使在輕載的情況下,您的網頁的載入速度也會更慢。

吞吐量方面,它可能會傷害數據庫更多,因爲它正在做所有的驗證工作,但這只是一個瘋狂的猜測。

+0

有一些需要注意的問題,例如打開了多少個連接,以前是否打開過連接,並且位於池中等等 – GrayWizardx 2009-12-29 06:17:23

3

打開數據庫連接是一個相對昂貴的操作。打開數據庫連接可能非常昂貴,以至於ADO.NET默認啓用connection pooling。如果您沒有使用連接池,那麼您的應用程序可能會運行得更慢(響應時間減少),甚至可能會遇到可伸縮性問題。

如果您正在使用連接池,那麼重複打開和關閉SqlConnection不會產生創建網絡連接,使用SQL Server進行身份驗證,設置任何無池連接的特定數據(等)的巨大開銷(除外在最初的物理連接創建上)。當調用Open時,將從池中檢索現有連接(如果可用),並且在調用Close時,連接將返回到池中。

啓用連接池後,我希望在維護打開的連接時,Web和數據庫服務器上的內存都會增加。如果你沒有使用連接池,那麼你可以做一些測試來測量對兩臺服務器的性能影響。

通常這不是你需要擔心的問題—使用連接池並在必要時調整池參數。