簡體   English   中英

使用一個或多個上下文更好嗎

[英]Is it better to use one or many contexts

我們有一個具有3個上下文的應用程序,用於連接到同一服務器下的3個SQL Server數據庫。

我們的DBA認為這三個連接對於服務器來說是昂貴的。

我的問題是:是真的嗎? 三個連接比一個連接更昂貴嗎? 我該如何測量?

在Entity Framework上處理此情況的最佳實踐是什么?

另外,我們正在訪問三個數據庫,而DBA則在爭論我們正在建立三個連接。 是巧合還是每個上下文確實對應於一個不同的連接?

實體框架使用ADO.Net連接池

摘抄:

連接池減少了必須打開新連接的次數。 池管理者維護物理連接的所有權。 它通過為每個給定的連接配置保留一組活動的連接來管理連接。 每當用戶在連接上調用“打開”時,池管理器就會在池中尋找可用的連接。 如果池化連接可用,它將把它返回給調用者,而不是打開一個新連接。 當應用程序在連接上調用“關閉”時,池化程序將其返回到活動連接的池化集中,而不是將其關閉。 一旦將連接返回到池,就可以在下一個Open調用中重用該連接。

池連接可以顯着提高應用程序的性能和可伸縮性。 默認情況下,ADO.NET中啟用了連接池。 除非您明確禁用它,否則池化程序會在應用程序中打開和關閉連接時優化連接。 您還可以提供多個連接字符串修飾符來控制連接池的行為。 有關更多信息,請參見本主題后面的“使用連接字符串關鍵字控制連接池”。

我們的DBA認為這三個連接對於服務器來說是昂貴的。

他需要定義昂貴的東西。 如果需要3個連接,則需要3個連接,您不僅可以神奇地減少連接數量。

三個連接比一個連接更昂貴嗎?

是。 一切都有Pro / Con。 如果使用3來編寫,維護和獲得更好的性能更簡單,那不只是說3 vs 1那樣簡單。

在Entity Framework上處理此情況的最佳實踐是什么?

我不認為基於您的問題(沒有示例上下文,為什么會有3個數據庫,如果同一個客戶端同時使用三個數據庫),在您的情況下確實可以回答。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM