대규모 데이터 세트를 위한 SQL Server의 페이지 매김 최적화
사용자에게 대규모 데이터세트를 효율적으로 제공하려면 페이지 매김이 필요합니다. 즉, 페이지당 결과의 일부만 표시됩니다. 그러나 성능에 영향을 주지 않고 페이지 매김을 구현하는 것이 중요하며, 특히 사전에 전체 결과 개수가 필요한 경우에는 더욱 그렇습니다.
이전 SQL Server 버전(2000-2008): 행 번호 매기기
SQL Server 2012 이전에는 행 번호 매기기가 표준 페이지 매김 기술이었습니다. 여기에는 ROW_NUMBER()
을 사용하여 행 번호를 할당하고 페이지 크기와 번호를 기준으로 필터링하는 작업이 포함되었습니다. 이 접근 방식은 기능적이지만 상당한 데이터세트에서는 비효율적인 것으로 나타났습니다.
SQL Server 2012 이상: OFFSET
및 FETCH
SQL Server 2012에는 우수한 OFFSET
및 FETCH
절이 도입되었습니다. 이는 지정된 수의 행을 직접 건너뛰고 필요한 하위 집합만 검색합니다. 이는 행 번호 매기기의 오버헤드를 제거하여 대규모 데이터 세트의 성능을 크게 향상시킵니다.
예시적 쿼리
다음 쿼리는 SQL Server 2012 이상에서 OFFSET
및 FETCH
을 사용하여 초기 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
절은 필수입니다.OFFSET
는 FETCH
을 동반해야 합니다. TOP
.OFFSET
및 FETCH
을 사용하면 특히 광범위한 데이터세트의 경우 성능이 크게 향상됩니다.위 내용은 성능을 유지하면서 SQL Server에서 대규모 데이터 세트를 효율적으로 페이지 매김하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!