我不知道我可能做了什么导致这种情况,但是await reader.ReadAsync()
需要8000毫秒,而如果我用同一方法中的ReadAsync()
替换Read()
则需要2毫秒
using (SqlConnection conn = new SqlConnection())
{
conn.ConnectionString = connectionString;
await conn.OpenAsync();
string cmdText = "SELECT * FROM images WHERE order_id = @OrderId";
using (SqlCommand cmd = new SqlCommand(cmdText, conn))
{
cmd.Parameters.Add("@OrderId", SqlDbType.UniqueIdentifier).Value = id;
using (var reader = await cmd.ExecuteReaderAsync())
{
if (!reader.HasRows) return null;
await reader.ReadAsync();
return (byte[])reader["image"];
}
}
}
删除了一些可读性方法
有问题的varbinary大小约为11MB。实际的查询执行仍然很快,只是读取速度非常慢。较小的varbinaries很好。
image
列是FILESTREAM