728x90
MSSQL 페이징 쿼리 가이드
✅ MSSQL 페이징 쿼리 기본 구조
MSSQL에서 페이징을 구현하려면 ORDER BY
와 함께 OFFSET
및 FETCH
를 사용합니다.
SELECT *
FROM YourTable
ORDER BY SomeColumn
OFFSET (@PageNumber - 1) * @PageSize ROWS
FETCH NEXT @PageSize ROWS ONLY;
📌 주의: ORDER BY 필수!
OFFSET
과FETCH
는 정렬 순서가 없으면 사용할 수 없습니다.
📌 MSSQL 페이징 예제
예를 들어, 한 페이지에 10개 데이터를 조회하며 2페이지째 데이터를 가져오는 쿼리는 다음과 같습니다.
DECLARE @PageNumber INT = 2; -- 현재 페이지
DECLARE @PageSize INT = 10; -- 페이지당 항목 수
SELECT *
FROM YourTable
ORDER BY SomeColumn
OFFSET (@PageNumber - 1) * @PageSize ROWS
FETCH NEXT @PageSize ROWS ONLY;
💡 실행 결과
✅ 11번째 ~ 20번째 데이터를 조회합니다.
🔥 페이징 성능 최적화 팁
1️⃣ 적절한 인덱스 생성
ORDER BY
에 사용되는 컬럼에 인덱스를 추가하면 속도가 빨라집니다.- 예시:
CREATE INDEX idx_yourtable_somecolumn ON YourTable(SomeColumn);
2️⃣ 필요한 컬럼만 조회
SELECT *
대신 필요한 컬럼만 선택하면 성능이 향상됩니다.
3️⃣ ROW_NUMBER() 활용
OFFSET
과FETCH
를 사용하기 어려운 경우,ROW_NUMBER()
를 활용한 대체 방법도 가능합니다.WITH CTE AS ( SELECT *, ROW_NUMBER() OVER (ORDER BY SomeColumn) AS RowNum FROM YourTable ) SELECT * FROM CTE WHERE RowNum BETWEEN ((@PageNumber - 1) * @PageSize + 1) AND (@PageNumber * @PageSize);
🎯 결론
MSSQL에서 효율적인 페이징 쿼리를 작성하려면:
✅ OFFSET
과 FETCH
를 활용
✅ ORDER BY
필수 사용
✅ 인덱스를 활용해 성능 개선
✅ ROW_NUMBER()
를 활용한 대체 방법 고려
이 방법을 적용하면 대량 데이터에서도 빠르고 효율적인 페이징이 가능합니다! 🚀
📢 추가 최적화 방법이나 궁금한 점이 있다면 댓글로 남겨주세요!
태그: #MSSQL #페이징 #Paging #SQL쿼리 #OFFSET #FETCH #ORDERBY #성능최적화 #인덱스 #Index #ROWNUMBER #데이터베이스 #Database #쿼리작성 #대량데이터 #SQL팁
728x90