我有一個使用EF Core 5.0.12. 我使用 swagger Web 界面進行除錯。我注意到我第一次在 swagger 中呼叫特定的控制器動作時它很慢(六秒或更長時間)。對同一操作的后續呼叫要快得多。我不完全確定 swagger 呼叫如何變得更快。在我對 API 的 Asp.Net Core SPA 呼叫中,每次似乎都很慢。
這讓我開始思考......因為,Asp.Net Core默認情況下,每次呼叫后都會處理物體背景關系,我是否會從每次使用DbContext Pooling以避免 EF 查詢編譯中受益?
我知道這里有一個先前的 SO 問題。但是由于我使用的是最新穩定版本的 Ef Core 和 Asp.Net Core,所以這似乎有點過時,給定的答案仍然適用嗎?
uj5u.com熱心網友回復:
第一次呼叫需要更長的時間,可能是因為正在啟動與資料庫的連接。之后,它使用連接池為后續請求重用相同的連接。
值得一提的是,它DbContext使用了底層連接物件,但每個請求都會創建一個新的 DbContext 并不意味著進行了新的連接 TCP 握手。因此,僅將 DbContext 替換為DbContextPool.
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/371318.html
