큰 결과 집합을 초래할 수있는 데이터베이스 쿼리가 있습니다. 데이터를 표시하는 클라이언트는 네트워크를 통해 데이터를 수신하므로 데이터베이스에서 처음 50 개의 결과 만 검색하여 클라이언트로 전송하여 전송 된 데이터의 양을 최소화하는 것이 었습니다. 그런 다음 두 번째 페이지로 이동하여 다음 50 가지 결과 등을 검색 할 수 있습니다 (예 : Google이 제공하는 것과 비슷한 것)
문제는 페이징을 효과적으로 구현하는 방법입니다. mssql이 가능한 한 많이 캐시를 사용하고 페이징을 변경할 때마다 동일한 캐시가 다시 한 번 실행되지 않도록하고 싶습니다.
데이터베이스를 동시에 쿼리하는 클라이언트가 더 있습니다. 사용 된 SQL 엔진 : MS SQL 2005
내 아이디어는 :
- 준비된 SQL Statemenst를 사용하여 실행 계획 공유를 보장하십시오.
- ROW_COUNT 변수를 사용하여 필요한 행만 검색하십시오.
그러나 이것이 가장 효과적인 방법입니까? 또는 전체 결과 세트를 검색하고 데이터를 클라이언트로 전송하는 코드에서 페이징을 구현하는 것이 더 낫다고 생각합니까?
팁 주셔서 감사합니다!
안부, 토마스