메뉴 건너뛰기

bysql.net

6. 페이지 처리의 중요성

2010.07.11 22:14

실천하자 조회 수:6820

  • 대용량 데이터 조회시

- 클라이언트/서버 환경 : 커서를 닫지 않은 채 사용자 이벤트 발생 시 결과 집합을 Fetch하도록 구현

- 웹 애플리케이션 환경 : 데이터베이스와의 연결을 지속하지 않는 웹환경으로 다음 페이지 요청 or

                                  스크롤 바 변경때마다 개별적은 SQL 문 수행 방식으로 페이지 처리 구현


  • Bad Example

- 데이터를 계속 Fetch 하다 출력 페이지에 도달 시 그때부터 PrintRow 호출로 pagesize 개수만큼 로우 출력 후 Fetch를 멈춤

  → 뒤 페이지로 이동할수록 불필요하게 많은 Fetch Call 유발

  → FetchSize를 늘려도 불필요한 Fetch Count 는 줄일 수 있지만 Array 버퍼에 쌓인 많은 로우를 읽으면서 발생하는

      CPU 리소스 낭비와 메모리 사용량이 증가,

      앞페이지 출력시 불필요한 뒷 부분의 로우를 가져오게되어 서버 및 네트워크 부하 가중

  ☞ 페이지 처리를 서버 단에서 완료하고 최종적으로 출력할 레코드만 Fetch


  • 페이지 처리를 하지 않을 시 발생하는 부하요인

1. 다량의 Fetch Call 발생

2. 대량의 결과 집합을 클라이언트로 전송하면서 발생하는 네트워크 부하

3. 대량의 데이터 블록을 읽으면서 발생하는 I/O 부하

4. AP 서버 및 웹 서버 리소스 사용량 증가


  • 페이지 처리

1. 페이지 단위로, 화면에서 필요한 만큼씩 Fetch Call

2. 페이지 단위로, 화면에서 필요한 만큼씩 네트워크를 통해 전송

3. 인덱스와 부분범위처리 원리를 이용해 각 페이지에 필요한 최소량만 I/O

4. 데이터를 소량씩 나누어 전송하므로 AP / 웹 서버 리소스 사용량 최소화


번호 제목 글쓴이 날짜 조회 수
67 Front Page file 운영자 2010.05.17 154865
66 1 장. 오라클 아키텍처 운영자 2010.05.20 17842
65 1. 기본 아키텍처 [1] file 휘휘 2010.05.23 19899
64 3. 버퍼 Lock [1] 휘휘 2010.05.24 15225
63 2. DB 버퍼 캐시 file 휘휘 2010.05.24 21916
62 4. Redo file 휘휘 2010.05.24 11314
61 9. Snapshot too old balto 2010.05.30 8100
60 10. 대기 이벤트 balto 2010.05.30 8010
59 7. Consistent vs. Current 모드 읽기 휘휘 2010.05.31 10537
58 8. 블록 클린아웃 휘휘 2010.05.31 12283
57 11. Shared Pool file 실천하자 2010.05.31 18511
56 5. Undo file 토시리 2010.05.31 18650
55 1. 트랜잭션 동시성 제어 실천하자 2010.05.31 8631
54 6. 문장수준 읽기 일관성 file 토시리 2010.06.01 10432
53 2장. 트랜잭션과 Lock 운영자 2010.06.01 6895
52 1. Explain Plan 실천하자 2010.06.06 14663
51 2. AutoTrace 실천하자 2010.06.06 8597
50 3장. 오라클 성능 관리 운영자 2010.06.06 6694
49 3. SQL 트레이스 file balto 2010.06.06 21175
48 4. DBMS_XPLAN 패키지 balto 2010.06.06 10461