> 데이터 베이스 > MySQL 튜토리얼 > 성능을 유지하면서 SQL Server에서 대규모 데이터 세트를 효율적으로 페이지 매김하려면 어떻게 해야 합니까?

성능을 유지하면서 SQL Server에서 대규모 데이터 세트를 효율적으로 페이지 매김하려면 어떻게 해야 합니까?

Patricia Arquette
풀어 주다: 2025-01-22 00:52:12
원래의
961명이 탐색했습니다.

How Can I Efficiently Paginate Large Datasets in SQL Server While Maintaining Performance?

대규모 데이터 세트를 위한 SQL Server의 페이지 매김 최적화

사용자에게 대규모 데이터세트를 효율적으로 제공하려면 페이지 매김이 필요합니다. 즉, 페이지당 결과의 일부만 표시됩니다. 그러나 성능에 영향을 주지 않고 페이지 매김을 구현하는 것이 중요하며, 특히 사전에 전체 결과 개수가 필요한 경우에는 더욱 그렇습니다.

이전 SQL Server 버전(2000-2008): 행 번호 매기기

SQL Server 2012 이전에는 행 번호 매기기가 표준 페이지 매김 기술이었습니다. 여기에는 ROW_NUMBER()을 사용하여 행 번호를 할당하고 페이지 크기와 번호를 기준으로 필터링하는 작업이 포함되었습니다. 이 접근 방식은 기능적이지만 상당한 데이터세트에서는 비효율적인 것으로 나타났습니다.

SQL Server 2012 이상: OFFSETFETCH

SQL Server 2012에는 우수한 OFFSETFETCH 절이 도입되었습니다. 이는 지정된 수의 행을 직접 건너뛰고 필요한 하위 집합만 검색합니다. 이는 행 번호 매기기의 오버헤드를 제거하여 대규모 데이터 세트의 성능을 크게 향상시킵니다.

예시적 쿼리

다음 쿼리는 SQL Server 2012 이상에서 OFFSETFETCH을 사용하여 초기 10개 행과 총 행 수를 검색하는 방법을 보여줍니다.

<code class="language-sql">DECLARE @RowsPerPage INT = 10;

WITH TotalResults AS (
  SELECT COUNT(*) OVER() AS TotalRows
  FROM TableName
)
SELECT *
FROM TableName
ORDER BY id
OFFSET 0 ROWS
FETCH NEXT @RowsPerPage ROWS ONLY;

SELECT TotalRows
FROM TotalResults;</code>
로그인 후 복사

중요 사항:

  • ORDER BY, OFFSET 사용 시 FETCH 절은 필수입니다.
  • OFFSETFETCH을 동반해야 합니다. TOP.
  • 와 함께 사용할 수 없습니다.
  • OFFSETFETCH을 사용하면 특히 광범위한 데이터세트의 경우 성능이 크게 향상됩니다.

위 내용은 성능을 유지하면서 SQL Server에서 대규모 데이터 세트를 효율적으로 페이지 매김하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿