ASP.NET MVC 3.0을 기반으로 작성된 애플리케이션에서 MVC WebGrid에 데이터를 표시하고 있습니다.ASP.NET MVC3 - 페이징 개념을 통한 성능 향상, 예제가 필요합니까?
레코드를 EntityViewModel로 가져 오기 위해 LINQ를 사용하고 있습니다. 이 작업에서 엔터티 레코드를 EntityViewModel로 변환해야합니다.
그리드에 표시 할 30K 레코드가 있습니다. 각각의 레코드마다 3 개의 다른 테이블로 이동해야하며, 레코드와 페인트의 존재를 true 또는 false로 비교하여 동일하게 표시해야합니다. 그리드.
한 번에 10 개의 레코드가 표시되지만 모든 레코드를 가져 와서 응용 프로그램에 저장하면 매우 느립니다.
페이징 위치에 있습니다. (단, 10 개의 레코드 만 웹 그리드에 표시됩니다.)하지만 모든 레코드가 15-20 초가 걸리는 응용 프로그램에로드되고 있습니다. 나는이 시간이 프로세서에 의해 소비되는 곳을 확인했다. 페인팅 장소 (모든 레코드가 3 개의 다른 테이블과 비교되는)에서 발생합니다.
LINQ 쿼리를 SQL로 변환했으며 SQL 쿼리가 2 초 미만으로 실행되는 것을 확인할 수 있습니다. 이것에 의해, 나는 SQL 질의의 속도가 충분히 빠르기 때문에 SQL 인덱싱에 시간을 낭비하고 싶지 않다고 강력하게 말할 수 있습니다.
구현할 두 가지 옵션이 있습니다. 1) MVC 용 캐싱 2) 페이징 (처음 10 개 레코드 만 가져 오기).
성능 향상을 위해 페이징 기술을 사용하고 싶습니다.
이제 내 질문은 10 개의 레코드 (서비스 메서드에 레코드 없음)를 전달하여 10 개의 레코드 만 가져 오는 방법입니다. 또한 다음 페이지를 클릭 할 때 다음 10 개의 레코드를 얻으려면 어떻게해야합니까?
코드를 게시 하겠지만 중요한 데이터가 있으므로 코드를 게시 할 수 없습니다.
모든 사례에서이 상황을 해결하는 방법에 대해 많은 감사드립니다.
실제 답변을 얻으려면 어떤 종류의 코드를 게시해야합니다. 민감한 정보가 드러나지 않도록하려면 변수 및 열 이름을 변경하십시오. – Dave