페이징 쿼리 방법에는 여러 가지가 있으며 여기서는 그 방법을 살펴보겠습니다.
SQL Server에는 Set Rowcount 설정이 있습니다. 이는 명령 처리가 지정된 행 수에 응답한 후 명령 처리를 중지한다는 것을 의미합니다. 이 기능을 사용하면 수천만 행 수준에서 고성능을 달성할 수 있습니다. 데이터 테이블. 성능 페이지가 매겨진 쿼리. 먼저 구현 방법에 대해 이야기해 보겠습니다.
1. 인덱싱된 테이블에 기본 키 필드 ID(정수형)가 있다고 가정하고 이 필드에 따라 페이징할 데이터를 가져옵니다.
2. @PageSize에 페이지 크기를 입력합니다.
3. @CurrentPage에 현재 페이지 번호를 넣습니다.
4. 검색하려는 데이터의 시작 부분에 있는 행으로 레코드 포인터를 빠르게 스크롤하는 방법이 핵심입니다! Set RowCount를 사용하면 쉽게 구현할 수 있습니다.
5. 가져오려는 데이터의 시작 부분에 있는 행으로 레코드 포인터를 성공적으로 스크롤한 다음 해당 행에 있는 레코드의 ID 필드 값을 기록한 다음 Top 및 조건을 사용하여 쉽게 얻을 수 있습니다. 지정된 데이터 페이지. 물론 Set RowCount를 사용하면 여전히 Top을 사용할 수 있나요?
Set Rowcount가 우리에게 어떻게 도움이 되는지 살펴보겠습니다.
@ID int 선언
@MoveRecords int
--@CurrentPage 및 @PageSize를 수신 매개변수로
선언합니다.
Set @MoveRecords=@CurrentPage * @PageSize+1
--다음 두 줄을 사용하면 검색하려는 데이터 행으로 빠르게 스크롤하고 ID를 기록할 수 있습니다.
행 개수 @MoveRecords 설정
Table1에서 @ID=ID를 선택하세요. ID별로 정렬하세요.
Rowcount @PageSize를 설정하세요.
--트러블을 줄이기 위해 *를 사용하는 것은 싫지만, 설명의 편의를 위해 임시로 사용하겠습니다.
* ID>=@ID인 Table1에서 선택 ID별로 정렬
행 개수를 0으로 설정
1,000W 레코드가 있는 테이블에서 페이지를 빠르게 100페이지(페이지당 100개 항목)로 넘기고 얼마나 빠른지 확인할 수 있습니다.
출처: 난펑 블로그
http://name-lh.cnblogs.com/archive/2006/03/08/346059.html