unitOfwork 的性能问题
Performance issue with unitOfwork
我已经实施了一个 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());
}
本应return 超过 20k 条记录,但需要将近 4 分钟。
谢谢
我认为这种性能可能是由于使用了异步方法。
从服务器读取大列(例如 varbinary(MAX)、varchar(MAX)、nvarchar(MAX) 或 XML)时,异步方法可能会出现性能问题。
您可以找到 rducom 答案,其中详细解释了异步方法的问题
我已经实施了一个 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());
}
本应return 超过 20k 条记录,但需要将近 4 分钟。
谢谢
我认为这种性能可能是由于使用了异步方法。
从服务器读取大列(例如 varbinary(MAX)、varchar(MAX)、nvarchar(MAX) 或 XML)时,异步方法可能会出现性能问题。
您可以找到 rducom 答案,其中详细解释了异步方法的问题