이전 글에서 'Row_Number'를 이용하여 검색된 결과에 순서대로 번호를 부여한 후 이 번호를 기반으로 'bettwen'으로 필요한 범위를 잘라내는 방법을 설명하였습니다. 동적 코드 없이도 코드가 깔끔하지만 속도가 너무 안 났고 그 원인을 분석해보니 셀랙트 부분에 있는 'Case'문이 문제였습니다. (참고 : [MSSQL] MSSQL의 페이징 쿼리 고찰 - 1. Row_Number + bettwen) 이 문제를 해결할 수 있도록 튜닝해 봅시다. *글을 읽기전에 이전글( [MSSQL] MSSQL의 페이징 쿼리 고찰 - 0. 테스트 환경 만들기(클릭) )을 보고 오시는 것이 좋습니다.* 연관글 영역 1. 사용 방법 사용 방법은 다음과 같습니다. Select Row_Number() Over ( Order ..
'Row_Number'를 이용하려면 'MSSQL 2005'이상에서 사용 가능한 방법입니다. 'Row_Number'를 이용하여 검색된 결과에 순서대로 번호를 부여한 후 이 번호를 기반으로 'bettwen'으로 필요한 범위를 잘라내는 방법입니다. 동적 쿼리를 전혀 사용하지 않아도 중복되는 코드 없이 깔끔하게 코드를 만들 수 있다는 장점이 있습니다. *글을 읽기전에 이전글( [MSSQL] MSSQL의 페이징 쿼리 고찰 - 0. 테스트 환경 만들기(클릭) )을 보고 오시는 것이 좋습니다.* 연관글 영역 1. 사용 방법 사용 방법은 다음과 같습니다. Select ( Row_Number() Over ( Order By [정렬 기준 컬럼] [정렬 방향] )) as [Row_Number()로 만든 순서 컬럼명], [출..
MSSQL에서 페이징 처리는 여러 가지로 귀찮습니다. MSSQL 2012버전부터는 어느 정도 간단하게 처리할 수 있도록 오프셋(OFFSET)을 지원하긴 하는데....성능이-_-; 어찌 됐건 예전에 만들어둔 페이징 쿼리가 너무 느려 이상해서 이것저것 테스트하다 보니 이 기회에 정리 좀 해야겠다 싶어 포스팅을 시작합니다. ㅎㅎㅎ MSSQL에서 사용할 수 있는 페이징 쿼리를 소개하고 속도, 유지 보수성 등의 몇 가지 중요하다고 생각되는 요소를 주관적으로 평가해보겠습니다. 연관글 영역 1. 테스트 DB 만들기 테스트를 위해 테스트용 DB를 만들겠습니다. 1-1. DB 생성 테스트용 DB의 이름은 'TestDB'입니다. 1-2. 테이블 생성 테이블은 2개를 생성합니다. SET ANSI_NULLS ON GO SET..