▶ 뭉충닷컴
 
mungchung.com login
Site Search
My Space
주절주절...
공부방
쥔장소개
Board
자유게시판
유용한 정보
자료실
Programming
강좌 & Articles
Spring 3.0
프로그래밍 Tip
   -ASP
   -PHP
   -JavaScript
   -HTML
   -Java/JSP
   -Database
   -Crystal Report
   -Visual Basic
   -이클립스
   -리눅스
   -기타
Windows API (VB)
Spread Sheet 7.0
컴퓨터활용 Tip
Other things
StarCraft 전략
StarCraft 문서
김용(金庸)
Son Q & Dieda

asp 페이징 테스트 자료

ASP 조회 수 13388 추천 수 0 2006.01.02 19:00:43
페이징 테스트
1.Rs.Move() 2.Rs.AbsolutePage 3.Top 20[NOT IN] 4.TOP 20[IN] 5.TOP 20[MIN] 6.TOP 20[INDEX, MIN)
제가 어느 페이징이 제일 빠를까.. 고민 하다가.. 테스트로 만들어 보았습니다.
총.. 6가지..입니다..

간단하게 쿼리를 설명해드리겠습니다.

1. SELECT TOP [불러올 총 게시물수] [출력 필드명] FROM [테이블 명]

 1번 리스트는 이 쿼리 구문을 써서 했고요. 현제 개시물까지 이동을 Rs.Move(이동할수) 로 처리 했습니다.

2. SELECT TOP [불러올 총 게시물수] [출력 필드명] FROM [테이블 명]    - 1번과 동일

 1번과 쿼리구문은 동이하고요. 레코드셋의 AbsolutePage를 이용해서 페이징을 했습니다.

3. SELECT TOP [불러올 총 게시물수] [출력 필드명] FROM [테이블 명]

   WHERE [글번호필드] NOT IN (SELECT TOP [제거할 게시물수] [글번호필드] FROM [테이블명])
   예전에 태요 사이트에서 보았던 쿼리 구문입니다.. NOT IN 때문에.. 문제시 되었던 쿼리구문이죠.

4. SELECT TOP [불러올 총 게시물수] [출력 필드명] FROM [테이블 명]
   WHERE [글번호] IN (SELECT TOP [페이지출력 갯수] [글번호] FROM
   (SELECT TOP [불러올 총 게시물수] [글번호] FROM [테이블 명]) AS A ORDER BY [글번호])
   ORDER BY [글번호] DESC

   이 쿼리 구문은 3번의 쿼리 구문의 문제점을 보완한 구문입니다. NOT IN 대신에 IN을 사용 했습니다.

5. SELECT TOP [페이지 출력갯수] [출력 필드명] FROM [테이블 명]
   WHERE [글번호] <= (SELECT MIN([글번호])
   FROM (SELECT TOP [제거할 게시물수] + 1 [글번호] FROM [테이블명]) AS A)

   5번째 쿼리 구문은 IN, NOT IN이 아닌 출력할 마지막 글번호 바로 앞이 글번호를 찾아서 처리를 해주는
   쿼리 구문입니다.

6. SELECT TOP [페이지 출력갯수] [출력 필드명] FROM [테이블명]
   WHERE [글번호] <= (SELECT MIN([글번호])
   FROM (SELECT TOP [제거할 게시물수] + 1 [글번호]
   FROM [테이블명] WHERE [인덱스] = [시작인덱스번호] AND [인덱스] = [끝인덱스번호]) AS A
   WHERE [인덱스] = [시작인덱스번호] AND [인덱스] = [끝인덱스번호])
   AND [인덱스] = [시작인덱스번호] AND [인덱스] = [끝인덱스번호]

   6번재 쿼리는.. 글에 인덱스(가칭)라는 필드를 하나 더 추가 해서.. 글 기본 2000개마다 (가변적입니다)
   인덱스를 증가 시켰습니다. 즉 2000개를 하나의 묶음으로 만든것입니다.
   그 인덱스를 기준으로 처리를 해주었습니다.(기본 개념은 영어 사전 입니다 ㅡㅡ;)

위와 같이 간단한 기본 쿼리 구문을 설명? 했습니다.
게시물은 100만개를 넣고 테스트를 했습니다.
테스트 게시판을 보시려면.. 맨위에 각 게시판을 링크를 걸었습니다.
서버가 구려서.. 제대로 될지 모르지만..
제 노트북
(CPU : p4-1.8, RAM : 768Mb, 컴팩 프리자리오 2820AP, 환경 : 윈도우2003 MSSQL2000)
에서 테스트 해본 봐로는 처음페이지(1), 마지막 페이지(50000) 처리 시간이 아래와 같습니다.(단위 ms)

1 : 320    12289.06
2 : 273    11476.56
3 : 289    4406.25
4 : 289    2695.31
5 : 289    1218.75
6 : 7.81    23.44

엄청난 차이가 나죠??
기본적으로 글번호에 Clustered Index, 인덱스번호, 글깊이에 Non Clustered Index를 걸어 두었습니다.
엄청난 차이로 인해 테스트로 만든 저 또한 입이 쩍 벌어 집니다 ㅡㅡ;;

위 페이징 로직은 여기 저기서 줏어 듣고 ㅡㅡ; 확장 시킨 것입니다.

제가 내공 수위가 낮은 관계로 정확한 테스트를 행했는지 모르지만..
페이징으로 고생하시는 분들을 위해.. 간략하게 만들어 봤습니다.

기본 테스트는 제 홈페이지에서 해보시면 되구요.

테스트 asp파일은 [이곳] 에서 다운 받을수 있습니다.

제 홈에 있는 페이징 방법이 6번의 인덱스와 not in 으로 만들었습니다.
(그때는 걍.. 2000개 안쪽에서 처리 해주는 것이라 not in을 썻습니다 게시판이 필요 하시면..
  다운 받으셔서 저장 프로시저늬 리스트 부분을 수정 하시면. .더욱 쾨적하게 사용 하실수 있을것입니다)

p.s 궁금하신 점이나 문의 사항은 제 홈페이지의 테스트 게시판 버그 리포트에 적어 주시기 바랍니다.




출처 : http://www.knhead.pe.kr/PagingTest/
큰머리의 페이징 테스트 자료 이다.

댓글 '9'

꾸용

2006.05.22 14:45:13
*.97.44.82

소스를 다운 못 받겠네요..
소스 좀 보구 싶어요^^
ddakker@hanmail.net

뭉충닷컴

2006.05.22 14:47:45
*.154.195.79

얼라...사이트가 일시적으로 막았네요.. -_-;
이럴줄 알았으면 소스좀 가져다 놓을껄..

꾸용

2006.05.22 16:10:57
*.97.44.82

6번 해보구 싶은데 인덱스 개념을 그냥 개괄적인 내용바께 몰라서 그런가 소스 없이는 당췌 모르겠네요 -_-

뭉충닷컴

2006.05.22 16:12:10
*.154.195.79

직접 큰머리님한테 메일 보내보세요.. 그분은 가지고 계실듯 하네요.

꾸용

2006.05.22 16:12:18
*.97.44.82

전 1번 방법 쓰고 있는데 ㅠㅠ 엄청난 손실이네요 -_-..

뭉충닷컴

2006.05.22 16:13:25
*.154.195.79

저는 더 안좋은 방법 사용합니다 -_-..

0782

2006.06.25 03:15:35
*.62.51.200

저도 이소스를 구하고 싶은데..
손민창님 소스가 있으신지 아님 큰머리님의 메일주소라도..부탁드립니다.
저의 메일 krpower@gmail.com
http://www.0782.net

뭉충닷컴

2006.06.25 09:16:42
*.154.195.121

의외로 테스트자료 소스코드 요청하시는 분들이 계셔서 구해놓았습니다.
첨부파일 다운로드 하세요 ^-^

엘랴

2008.06.02 11:05:59
*.238.133.173

우와 정말 유용한 정보 100만개 감사!! 6번 당장 시험해볼게요!!
문서 첨부 제한 : 0Byte/ 2.00MB
파일 크기 제한 : 2.00MB (허용 확장자 : *.*)
List of Articles
번호 제목 글쓴이 날짜 조회 수
44 ASP 암호화를 이용해 사이트간 SSO 간단하게 처리하기 file 뭉충닷컴 2006-09-02 16081
43 ASP 웹에서 실행가능한 쿼리 분석기 file [1] 뭉충닷컴 2006-06-25 8122
42 ASP 글자수 Bytes 반환하는 함수 뭉충닷컴 2006-06-10 8429
41 ASP 새창 띄워도 세션값 안물고 가는 꽁수 [1] 뭉충닷컴 2006-05-25 8237
40 ASP asp에서 XML 다루는 여러가지 예제 file 뭉충닷컴 2006-05-08 8112
39 ASP XMLHTTP에서 데이타를 POST 로 보내기 뭉충닷컴 2006-04-27 8351
38 ASP asp에서 class 사용에 관한 강좌 링크 뭉충닷컴 2006-02-25 8297
37 ASP 레코드셋 읽어서 변수 자동 생성 뭉충닷컴 2006-01-14 8491
36 ASP COM+ 를 asp 에서 이용할때 몇가지 정보들 뭉충닷컴 2006-01-13 7950
35 ASP Request 값들을 한번에 확인할수 있는 함수 뭉충닷컴 2006-01-03 8371
34 ASP SQL Injection 취약점을 이용한 해킹 뭉충닷컴 2006-01-03 10114
» ASP asp 페이징 테스트 자료 file [9] 뭉충닷컴 2006-01-02 13388
32 ASP 특정 폴더의 하위 폴더와 파일들 전부 보여주기 뭉충닷컴 2005-12-22 8231
31 ASP 알집을 이용해서 서버상 asp로 zip압축하기 file 뭉충닷컴 2005-09-21 8471
30 ASP base64 인코드, 디코드 - asp용 (한글 지원) 뭉충닷컴 2005-08-26 11368
29 ASP 여러가지 ASP 관련 함수 모음 뭉충닷컴 2005-08-26 8670
28 ASP 진수 변환 시키기 뭉충닷컴 2005-06-19 8464
27 ASP IIS에서 asp를 실행 못하는 경우 뭉충닷컴 2005-06-17 8365
26 ASP 그냥 공부용으로만 볼것! 해킹할때 쓰는 asp 파일 file [1] 뭉충닷컴 2005-06-10 9442
25 ASP DateSerial 를 이용해 원하는 날짜 구하기 - 마지막 날짜, 첫째 날짜 뭉충닷컴 2005-06-09 8651