簡體   English   中英

有時Entity Framewok查詢非常慢

[英]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.

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