2017-12-14 33 views
0

나는 AWS 시드니 (나는 뉴질랜드에있다)에서 데이터베이스의 값을 쿼리하고 있는데 스톱워치를 사용하여 쿼리 시간을 측정했는데 때로는 밀리 초 단위로 일치하지 않습니다. 정확히 동일한 쿼리의 경우 수백 밀리 초 정도의 시간이 걸릴 수 있습니다. 나는 이유를 모른다.매우 불일치 AWS 원격 데이터베이스 쿼리 시간,

Var device = db.things.AsQueryable().FirstOrDefault(p=>p.ThingName == model.thingName); 

사물 테이블에는 5 개의 항목 만 있습니다. 나는 그것을 asqueryable없이 시도했지만 별다른 차이가없는 것으로 보입니다. Visual Studio 2013, 엔터티 프레임 워크 버전 6.1.1을 사용하고 있습니다.

편집 :
이것은 업무용이기 때문에 코드를 많이 넣을 수는 없으며 다른 예제는 34 ms에서 400 ms

감사

+1

조언을 제공하기에 충분한 정보를 제공하지 않았습니다. 단일 쿼리 타이밍은 데이터베이스를 측정하는 좋은 방법이 아닙니다. 실제 세계와 일치하는 타이밍으로 많은 쿼리를 시간을 들여 설정해야합니다. IMHO는 때로는 20ms와 때로는 200ms의 단일 쿼리를 걱정할 필요가 없습니다. 그것은 1000 쿼리가 sporatic 평균입니다 ... 또한 실제 DB 쿼리보다 더 많은 숫자에 영향을 미칠 수있는 설치에 대해 아무것도 언급하지 않습니다. –

+0

안녕하세요, 설치 프로그램의 의미에 대해 자세히 설명해 주시겠습니까?, 감사합니다. – lulz

+0

AWS에서 모든 것을 실행하고 있습니까? 인스턴스 크기 등 –

답변

0

이는 추위에 따뜻한 쿼리 실행과 관련이있을 수 있습니다.

처음으로 특정 모델에 대해 쿼리가 수행되면 Entity Framework는 모델을로드하고 유효성을 검사하기 위해 많은 작업을 수행합니다. 우리는 종종이 첫 번째 쿼리를 "콜드"쿼리라고 부릅니다. 이미로드 된 모델에 대한 추가 쿼리는 "따뜻한"쿼리로 알려져 있으며 훨씬 빠릅니다.

다음과 같은 글이에 대한 자세한 정보를 찾을 수 있습니다

:이 방법으로 문제가 있는지 확인하기 위해 https://msdn.microsoft.com/en-us/library/hh949853(v=vs.113).aspx

한 가지 방법은 저장 프로 시저를 작성하고 있는지 확인하기 위해 (엔티티 프레임 워크를 사용하여) 그것에 의해 데이터를 얻을 수 있습니다 문제는 연결 또는 쿼리 (Entity Framework) 자체에 있습니다.