일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 전자정부
- angular2
- 스프링
- 상속
- jquery
- IBatis procedure
- Random
- 가변인자
- 추상클래스
- 업캐스팅
- 로또
- 자바
- Validations
- 페이징
- 자바 야구게임
- 전체
- 25가지 효율적인 sql작성법
- 상속예제
- full text indexing
- 이클립스
- 단축키
- 다형성
- 다운캐스팅
- 야구게임
- Full text
- while
- 전체텍스트
- Login with OAuth Authentication
- 형변환
- Today
- Total
nalaolla
[MSSQL 2012] MSSQL 2012에서 새롭게 추가된 페이징 쿼리 기법 본문
이번 MS-SQL 2012에서 새로운 페이징 기법을 제공되었습니다.
기존의 페이징 처리를 하기위해 Top, row_number, NOT IN, IN 을 동원한 작업을 했어야 했는데요.
아주 간단한 페이징을 최적화 할 수 있게 되었네요.
개발자들에게 희소식이 아닐까 합니다.
물론, 성능면에서는 현업에서 충분한 테스트를 진행해보아야 겠지만, 간단히 소개합니다.
너무 간단해져서 설명할것도 따로 없을 듯 합니다.
SELECT |
자 보시죠.. ㅋㅋ
많이 간단해 졌죠.
OFFSET 기능이 추가 되면서, 페이징 쿼리를 쉽게 구현할수 있도록 해놓았습니다.
많이 응용해보면 좋을듯 합니다.
한가지 주의할점은 OFFSET 지정시 이용되는 ORDER BY 의 컬럼에 대한 몇가지 제약이 있다는 것입니다.
그 제약은 다음과 같습니다.
Offset Fetch에 대한 제한 사항 l 외부 쿼리와 상관 관계를 만들 수 없습니다. l OVER 절은 OFFSET 및 FETCH를 지원하지 않습니다. l OFFSET 및 FETCH는 INSERT, UPDATE, MERGE 및 DELETE 문에서 직접 지정할 수 없지만 이러한 문에 정의된 하위 쿼리에서는 지정할 수 있습니다 l UNION, EXCEPT 또는 INTERSECT 연산자를 사용하는 쿼리에서는 쿼리 결과의 순서를 지정하는 마지막 쿼리에서만 OFFSET 및 FETCH를 지정할 수 있습니다. l 같은 쿼리 식(같은 쿼리 범위)에서 TOP을 OFFSET 및 FETCH와 결합할 수 없습니다. 안정된 최적화를 위해서는 아래 조건을 만족해야 합니다. l 쿼리에 사용되는 기본 데이터가 변경되지 않아야 합니다.즉, 쿼리와 연결된 행이 업데이트되지 않거나 페이지에 대한 모든 쿼리 요청이 스냅숏 또는 직렬화 가능 트랜잭션 격리를 사용하여 단일 트랜잭션에서 실행되어야 합니다. l ORDER BY 절이 고유한 열 또는 열의 조합을 포함해야 합니다. |
자세한 정보는 MSDN을 참고해주세요 ^^
MSDN : http://msdn.microsoft.com/ko-kr/library/ms188385(v=sql.110).aspx#Offset
그리고 성능관련 정보는 다음을 참고해주세요
http://www.mssqlgirl.com/paging-function-performance-in-sql-server-2012.html
역쉬 성능은 기대이하인듯 한듯 합니다. ^^
'MS-SQL' 카테고리의 다른 글
mssql 도 rownum 된다. (0) | 2015.12.20 |
---|---|
비용 발생하는 쿼리 찾아내기 (0) | 2015.12.20 |
거리계산 최종정리 (0) | 2015.12.20 |
거리계산 (0) | 2015.12.20 |
거리계산 (0) | 2015.12.20 |