我有一个简单的查询
var count = await _context.ExchangeRate.AsNoTracking().CountAsync(u => u.Currency == "GBP");
本表只有3列和10排的数据。
当我试图执行的查询的网5个项目是把周围2.3秒的第一次和500毫秒(+-100)进行后续请求。 当我打了相同要求在短程也是回来几乎没有时间(45ms如sql profiler).
我已经实现ARITHABORT中的EF从 这里
当我看到在SQL Profiler这是设置ARITHABORT,但仍然的查询需要的同时为第一个请求和后续请求。
我如何实现同样的速度作为短程查询的速度。 我需要查询的运行真正的速度作为我的项目的要求的回应在1第二(需要至少5个简单的DB电话...如果1呼吁采取500毫秒后它是交叉1第二项要求)
编辑
尝试连ADO.Net. 执行时间了如SQL Profiler是40毫秒其作为当它达到了代码这几乎是400毫秒. 这么多的区别
using (var conn = new SqlConnection(connectionString))
{
var sql = "select count(ExchangeRate) as cnt from ExchangeRate where Currency = 'GBP'";
SqlCommand cmd = new SqlCommand();
cmd.CommandText = "SET ARITHABORT ON; " + sql;
cmd.CommandType = CommandType.Text;
cmd.Connection = conn;
conn.Open();
var t1 = DateTime.Now;
var rd = cmd.ExecuteReader();
var t2 = DateTime.Now;
TimeSpan diff = t2 - t1;
Console.WriteLine((int)diff.TotalMilliseconds);
while (rd.Read())
{
Console.WriteLine(rd["cnt"].ToString());
}
conn.Close();
}