[英]Sometimes Entity Framewok queries are very slow
我們有以下代碼:
public async Task<bool> AreConsumerIdAndSecretExistAsync(AuthenticateConsumerRequest request)
{
return await _pplEntities.ApiConsumers.AnyAsync(ac =>
ac.ConsumerId.Equals(request.ConsumerId) && ac.ConsumerSecret.Equals(request.ConsumerSecret));
}
這將查詢僅包含三行數據的表。 由於某種原因,執行上述方法有時會花費很長時間。 這不是發生此問題的唯一地方。 好像在其他地方運行多個SQL查詢時,要花很長時間才能運行第一個查詢,而其他查詢似乎沒有問題。 如果我在本地運行該應用程序,除了第一個查詢之外,它的運行速度非常快。
下面是New Relic跟蹤的圖片,顯示了應用程序的運行速度。 在其他環境中,我們會遇到整個請求需要15秒以上的時間; 這非常令人困惑。
我們正在.NET 4.6.1上運行。
屏幕截圖中的數字是左側的調用次數或時間?...其調用的次數,而不是正確的時間...因此,調用它的速度不會太慢。 。
避免等於,這是ac#函數,不確定它是否具有sql轉換...我所知道的100%為'=='。
將索引放在pr或fk或主查找列上
var res = _pplEntities.ApiConsumers
.Where(ac => ac.ConsumerId == request.ConsumerId
&& ac.ConsumerSecret == request.ConsumerSecret)
.ToListAsync()
if(res.Any())
{
//to stuff and things
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.