대량목록조회성능이슈 2

[김정삼의 SQL튜닝] 대량목록조회성능이슈 2편

[김정삼의 SQL튜닝] 대량목록조회성능이슈 1편 보기 I. 개요 여기서 선택적인 조건이란, 어떤 입력 변수 값이 선택적이어서 SQL문 조건절에 "A.COL_ID = NVL(:col_id, A.COL_ID)"와 같이 구문을 작성하는 경우를 의미하며, 이런 SQL 실행 시 성능문제가 흔히 발생합니다.그리고, 이런 선택적인 조회 조건 처리 SQL문에서 성능 문제가 자주 발생하는 주된 이유는 크게 실행계획 분리 문제와 전체 범위 처리 문제로 압축할 수 있습니다. 실행계획 분리 문제선택적인 조건절이 하나만 있는 경우 옵티마이저는 최적화 과정을 통해 실행계획을 분리할 수 있습니다. 하지만, 둘 이상의 선택적인 조건절이 있는 경우, 옵티마이저가 모든 경우의 수 만큼 실행계획을 분리하지 않기 때문에, 결국, 여러 입력..

[김정삼의 SQL튜닝] 대량목록조회성능이슈

| 개요 |☞ 대량 목록 조회 관련한 성능 이슈는 해결이 쉽지 않은 고질적인 성능 이슈 입니다. 대량 목록 조회란? 예를 들어, 기업 고객의 통신 서비스 계약 목록, 당일의 미처리 민원 접수건, 특정 시군구의 복지급여수급자 목록을 조회하는 경우, 그 결과 건수가, 적은 경우 수십건에 불과하지만, 많은 경우 수만건이 될 수 있습니다. 다양한 예외가 존재하기는 하지만, 일반적으로 SQL 응답시간은 결과 건수에 비례하므로, 결과 건수가 많으면 응답시간도 늦고 사용자가 성능에 불만족을 느낄 가능성이 높습니다.이런 류의 대량 목록 조회는 60초 가량의 타입아웃 시간이 적용되는 온라인 처리 AP 기능으로 구현되기도 하지만, 타임아웃 시간을 넉넉하게 설정한 리포트 서비스('On-demand 배치' 또는 '온라인 배치..