ASP.NET MVC 및 LINQ to SQL을 사용하여 작업 한 적이 있다면 많은 사람들이 익숙한 PagedList 클래스를 웹 응용 프로그램에서 사용하고 있습니다. Rob Conery에 의해 블로깅되었으며, 비슷한 화신이 Nerd Dinner 등과 같이 포함되었습니다. 훌륭하게 작동하지만 내 DBA는 향후 성능 문제에 대한 우려를 제기했습니다.LINQ to SQL 페이지 매기기 및 COUNT (*)
그의 문제는이 라인의 결과로 발행 가져옵니다 SELECT COUNT (*) 주위 :
TotalCount = source.Count();
결과로 데이터 (아래처럼) 추가 쿼리를 실행됩니다 페이징했다 조치 IQueryable.Count() 메서드 호출 중 :
SELECT COUNT(*) AS [value] FROM [dbo].[Products] AS [t0]
더 좋은 방법이 있습니까? 항목 수를 얻기 위해 PagedList 클래스의 Count 속성을 사용하는 것을 고려했지만 현재 표시된 항목의 수 (총 수는 아님)를 계산하기 때문에 작동하지 않습니다.
데이터베이스에 많은 양의 데이터가있을 때 얼마나 많은 성능 저하가 발생합니까?
Upvoted 그렇게 열심히 인터넷을 끊었다. ;) 추가 카운트 쿼리가 데이터베이스 성능을 떨어 뜨리는 경우 심각한 문제가 발생할 수 있습니다. – jfar