0

我已經實現了unitOfwork模式,可以讓我處理所有諮詢數據庫的過程,但我一直在收取一些perfomace問題。 ex。性能問題unitOfwork

public Task<IEnumerable<BooksQueryResult>> GetBooks(int idBook, string Title, string Author) 
{ 
    List<SqlParameter> sqlParams = new List<SqlParameter>(); 
     sqlParams.Add(new SqlParameter("idBook", queryParams.IdBook?? SqlString.Null)); 
     sqlParams.Add(new SqlParameter("Title", queryParams.Title?? SqlString.Null)); 
sqlParams.Add(new SqlParameter("Author", queryParams.Author?? SqlString.Null)); 


     return repos.DbSqlQueryAsync("EXEC usp_getValidBooks @IdBook, @Title, @Author, @DisclosurePeriod 
               , sqlParams.ToArray()); 
} 

它應該返回超過20k條記錄,但它需要將近4分鐘。

謝謝

+0

什麼是''usp_getValidBooks的代碼的問題? –

+0

這是一個需要3s運行的sql查詢,我也檢查了存儲過程的性能。謝謝 –

回答

0

我相信這種表現可能是由於使用異步方法。

從服務器讀取大型列(如varbinary(MAX),varchar(MAX),nvarchar(MAX)或XML)時,異步方法可能會出現性能問題。

你可以找到rducom答案,詳細解釋了異步方法here

+0

優秀的推薦! –