내가 있는 간단한 쿼리
var count = await _context.ExchangeRate.AsNoTracking().CountAsync(u => u.Currency == "GBP");
테이블에 있는 3 열과 10 행 데이터입니다.
가 쿼리를 실행합에서 순 5 프로젝트 그것은 약 2.3 초간 500ms(+-100)이후에 요청합니다. When I hit 같은 요청 또는 카탈로그 뷰 쿼 그것은 반환에서 시간도 거의 없(45ms 에서 볼 수 있듯이 sql 프로파일러).
를 구현하고 있습니다 ARITHABORT 에서 EF 에서 여기
내가 볼 때에 SQL 프로파일 설정 ARITHABORT 에만 여전히 쿼리에는 동일한 시간에 대해 첫번째 요청과 이후 요청합니다.
을 어떻게 달성 속도와 같은 SSMS 쿼리 속도입니다. 내가 필요한 쿼리를 실행 속도 정말로 프로젝트 요구 사항을 반환 응답에서는 1 초(을 만들 필요가 적어도 5 개의 간단한 DB 를 호출하면...1 전화를 걸리는 500ms 그것은 횡단 1 두 번째 요구 사항)
편집
려와도 ADO.Net. 실행 시간이 걸렸에서 볼 수 있듯이 SQL 프로파일은 40ms 어디로 때 그것은 도달하는 코드는것은 거의 400ms. 그래서 많은 차이
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();
}