我已经实现了一个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 :(得分:0)
我相信这种表现可能是因为使用了异步方法。
从服务器读取大型列时,异步方法可能会出现性能问题(例如varbinary(MAX),varchar(MAX),nvarchar(MAX)或XML)。
您可以找到 rducom 的答案,该答案详细解释了异步方法问题here