부분범위 처리가 궁금합니다. 0 2 1,883

by 손님 [Oracle 기초] 부분범위처리 [2013.03.18 15:05:08]



안녕하세요 DB 공부를 하고 있는 개발자 입니다.

부분범위처리에 관련된 내용을 공부하다가 개념을 잡지 못해 이렇게 질문을 드립니다.

제가 이해한 바로는 부분범위처리란 전체 테이블을 읽지 않고도 운반단위에 차면 패킷으로 전송해주는걸로 알고 있습니다.

SELECT * FROM TABLE 이라는 SQL을 보면 부분범위처리가 되겠죠.

여기서 궁금한 점이 부분범위처리가 가능하면 OLTP 시스템에서 빠른 응답속도가 가능 하다고 하던데..

위 SQL 에 결과가 500건이고 운반단위가 10건이라고 가정하였을 경우

이론상 50번을 운반하는거 같은데요... 하지만 결국 화면에 500건을 모두 보여줘야 하기 때문에

500건이 모두 운반 될때까지 화면에 나타나지 않아 부분범위처리가 가능 하더라도 화면에 뜨는 속도는

느린거 아닌가요? 만약 ROWNUM <= 10이라는 조건을 주면 부분범위처리를 하다가 STOP KEY 조건에 의해

응답속도가 빠를거 같긴 한데 .. 쓰다보니 내용이 길어졌네요.. 제가 이해한 내용이 맞는지 너무 궁금합니다.. ㅠㅠ
by 마농 [2013.03.18 15:20:16]
네. 이해하신 내용이 맞습니다.
500건을 다 조회한 후에야 화면에 뿌려준다면? 부분범위처리로 인한 이득은 없죠.
부분 패치만으로도 화면에 뿌려주는 기능을 지원하는 환경(툴, 프로그램밍 언어, 기타 등등)에서나
빠른 응답속도를 기대할 수 있습니다.
일반 웹 프로그래밍에서는 그 효과가 없습니다.
웹 프로그래밍에서는 자체 부분범위 처리를 해야 하죠(페이징 쿼리, Rownum)
토드로 쿼리를 날린다면?
토드는 기본값이 500 으로 설정되어 있어 아무리 많은 데이터를 조회해도 500건만 패치하고 대기합니다.
스크롤 내리면 그다음 500건 패치하는 방식.
부분범위처리인지 전체범위처리인제에 따라 응답속도 달라지고요...

by 손님 [2013.03.18 15:41:40]

친철하게 자세한 답변 너무 감사합니다.. 좋은 하루 되세요..^^

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입