SQL 프로필러에 표시된 것처럼 SqlCommand.ExecuteReader를 호출하는 데 SQL 호출 자체보다 완료하는 시간이 짧습니까?SqlCommand.ExecuteReader 지속 기간이 SQL 프로파일 러 일괄 처리 기간보다 짧습니다.
나는를 SqlCommand.ExecuteReader를 호출하는 콘솔 응용 프로그램에서 실행되는 다음과 같은 간단한 코드를 가지고있는 내가 시간을 스톱워치 객체 사용 : SQL 배치 기간은 4 회에보고 된 것보다 더 긴 평균적으로
var swQueryTime = new Stopwatch();
var conn = new SqlConnection("Data Source=.;Initial Catalog=master;Trusted_Connection=True;");
conn.Open();
string sql = string.Format(@"select * from sys.dm_os_memory_clerks; select * from sys.dm_os_performance_counters ");
for (int i = 0; i < 10; i++)
{
var comm = new SqlCommand(sql, conn);
swQueryTime.Restart();
var dr = comm.ExecuteReader();
swQueryTime.Stop();
Console.WriteLine("ElapsedMilliseconds: {0}", swQueryTime.ElapsedMilliseconds);
dr.Close();
comm = null;
}
을 .Net 측에서.
프로파일 러에서 밀리 초를 구체적으로보고했는지 확인했습니다.
SqlCommand.ExecuteReader의 비동기 버전을 사용하고 있지 않습니다.
프로파일 러 지속 시간은 프로파일 러 시작 및 종료 시간을 사용하여 읽고 검증 한 것의 여러 스레드/코어에 걸친 모든 시간의 합계가 아닙니다.
감사합니다.
+1 : SQL 프로필러 밀리/마이크로 초 체크 용. – RBarryYoung
프로필러에서 SQL 문 자체의 기간을 확인 했습니까? 일괄 처리 기간보다 항상 적습니다. 일반적으로 차이는 약간이지만 때로는 중요합니다. – RBarryYoung
예 진술 기간을 확인했습니다 - 2 진술 문은 예상되는 배치 지속 시간의 합계입니다. – user2139987