2014-11-03 2 views
1

간단한 대답을 둘러 보았지만 아직 발견하지 못했습니다. (나는 눈이 멀거나 참을성이 있어도 누군가 내게 링크를 게시하게되어 기쁩니다.)성능 : 로컬 대 데이터베이스 - 엔티티 프레임 워크

이 나는 ​​단어 local 데이터베이스를 쿼리하고 메모리에서 결과 집합을 받고 있지 않은지 상식을 알고 내 저장소

get 
{ 
    if (context.entity.Local.Count == 0) 
    { 
     return context.entity; 
    } 

    return context.entity.Local; 
} 

에 다음과 같은 코드가 있습니다. 그러나 내가 알고 싶은 것은 데이터베이스에서 가져온 것보다 얼마나 빨리 결과 집합을 local에서 가져 오는 것입니까? 큰 차이가 있습니까?

코드에 약점을 찾으려고 노력하면서 웹 응용 프로그램의 속도를 높이고 싶습니다.

감사합니다.

+1

얼마나 빨리 관련이 없는지, 데이터베이스와 관련된 데이터가 필요한지 아닌지 관련성이 있습니다. – DavidG

+0

성능에 문제가없는 경우 로컬을 만드는 이유는 무엇입니까? 데이터베이스에 갈 수도 있습니다. 그러면 개발자는 최신 서버 데이터가 정확히 일치하는지 알고 있습니다. – user3428422

+0

속도 차이가 없다고 제안하면 해결됩니다. 감사합니다. – user3428422

답변

-3

처음에는 상식이 전혀 없습니다. 로컬은 EF에서 전혀 정의되지 않은 것이므로 저장소를 만든 사람에 따라 다르며 다른 것을 참조 할 수도 있습니다.

두 번째 - 많이. 쉽게 1000의 요인. 그 데이터베이스는 SQL을 생성하고 파싱하는 별도의 프로세스입니다. 2 배 네트워크 전송 (또는 네트워크 전송기). 그것을 단지 재산을 읽는 것과 비교하십시오. 1000은 보수적 일 가능성이 높습니다. 데이터베이스에서 시작하는 데 많은 시간이 걸리는 것은 아닙니다.

당신이하는 일에 따라 다르지만 메모리에 캐싱하고 데이터베이스를 피하는 것이 성능면에서 많은 차이를 만들 수있는 유효한 전략입니다. 더 많은 메모리를 소비하고 동기화 문제를 변경합니다. 나중에는 일부 (변경하지 않음) 데이터와 관련이 없습니다.

+1

EF에서 정의 된 로컬 IS http://msdn.microsoft.com/en-us/library/gg696248 (v = vs.113) .aspx. 나는 또한 "쉽게 1000의 요인으로"문제를 가지고있다, 당신이 그것을 말할 수있는 방법이 없다. – DavidG

+0

그래서 이제는 속도가 중요하지 않다고 말하는 대답 (의견)이 있습니다. 그 이유는 1000 가지 요인에 대해 많이 생각해보십시오. 감사합니다. – user3428422

+0

당신은 첫 번째 장소? .. lol – user3428422

관련 문제