카테고리 없음

페이징 기법 중 하나

가을이짱짱 2005. 4. 15. 19:22
반응형
출처 [http://taeyo.net] - 홍찬석님의 글입니다.
아직까지도 정답이 없는 페이징기법에 대한 좋은 방법이 있어 퍼왔습니다.

JSP 코딩을 하면서 ASP와 다르게 ADO를 사용할 수 없는 것 때문에 알아보게된 것입니다.
강좌에도 나와있지만, 단점이 있다면 키가 여러개인 테이블의 페이징은 도저히 할 수가 없더라구요...
(지가 좀 모자라서 그런가...)
해서 다음과 같은 방법으로 해결을 했는데, 다른 분들께도 도움이 되었으면 합니다.

PageSize = 10
ListSize = 20
CurrentPage = 1

SELECT * FROM (
  SELECT TOP [ListSize] * FROM (
    SELECT   TOP [CurrentPage * ListSize] [필드1], [필드2], [필드3]
    FROM     [테이블명]
    WHERE    [조건]
    ORDER BY [필드1], [필드2]) A
  ORDER BY [필드1] DESC, [필드2] DESC) B
ORDER BY [필드1], [필드2]

데이터의 양이 무진장 많아지면야 느려지겠지만, 예전의 TOP 명령 하나만 사용했을 때보단
정말 빠릅니다.
 

대림동
2003-05-06
지금 소스에 추가로 복합인덱스를 설정해줘보세요. 데이터가 무지 많아져도 절대 느려지는 법이 없지요. 테스트 해보시고 로팅타임 체크해보세요.
x
김민종
2003-05-22
복합인덱스를 설정해준다는 것이 무슨뜻인가여?? ㅡ0ㅡ;; 자세히좀 알려주세요...
소스를 수정해서 올려주시면 더 감사하구요^^*
x
김신열
2003-06-04
복합인덱스 적용해서 테스트 해봤더니 예전에 쓰던거에 비하면 엄청나게 빨라지는걸 느겼습니다.
그런데 10만건 이상되면 소트관련해서 시간이 걸리더군요...
이정도면 훌륭하네요 ^^ 그리구 10만건 이상의 데이터를 찾아가는 사람도 없을터...
가령 이후10페이지를 1만번 눌러야 하니깐요~~~
이런 사람은 없겠죠뭐~~~ ^^
반응형