본문 바로가기

SQLP9

서술형문제5. 페이징처리 SQL 작성법 고객상태코드 = 'AC'인 고객을 조회해서 등록일시,고객번호 순으로 출력하고자 한다. 출력하고자 하는 항목은 아래 그리드(Grid)와 같고, 가장 우측 최근접속일시는 최근 한 달 이내 마지막 접속일시를 의미하며, 접속이력이 없으면 Null을 출력한다. ※한달 전 날짜를 구하는 함수 -> trunc(add_months(sysdate,-1)) '조회/다음' 버튼을 누르면, 매번 20건씩 데이터를 읽어 그리드 화명에 추가(Append)하는 방식으로 화면 페이징 처리를 구현해야 하고, '파일로 출력' 버튼을 누르면 전체 조회 데이터를 파일로 일괄 저장하도록 구현해야 한다. 두 조회 버튼에 대한 1.최적의 SQL을 각각 작성하고, 2.최적의 구성안을 제시하시오 요건 1. 각 조회버튼에 대한 성능요건 1) 조회/다.. 2021. 8. 14.
서술형문제4 SQL 작성 주문 테이블 구조는 아래와 같으며, 파티셔닝 하지 않았다. 하루 주문 건수는 평균 2만 건이며, 10년치 데이터가 저장돼 있다. 주문 데이터를 조회하는 화면은 아래와 같다. 고객번호는 입력하지 않을 수 있지만, 주문일자는 항상 입력해야 한다. 주문일자로는 보통 3일을 입력하며, 최대 1주일까지 입력할 수 있다. 1.조회버튼을 누를 때 수행할 최적의 SQL을 작성하시오. 개발 정책 상 Dynamic SQL은 사용할 수 없다. 주문일시 기준 역순으로 정렬해야 하며, 부분범위처리는 허용되지 않는다. 즉 조회된 결과 집합 전체를 그리드(Grid)에 출력해야 한다. 2.최적의 인덱스 구성안을 제시하시오. 화면 튜닝 Point 1.전체범위처리로 처리해야 함 2. 고객번호는 입력하지 않을 수 있지만 주문일자는 항상 .. 2021. 8. 13.
서술형문제3 전체범위처리 SQL 작성 문제 같은 데이터를 두번 읽지 않고서 같은 결과집합을 출력하도록 아래 두 SQL을 각각 작성하시오. (단, 부분범위처리가 불가능한 상황 전체범위처리 기준으로 튜닝할 것) -'주문일자'의 데이터 타입은 문자형 8자리 - 거래 업체는 10,000개 - 월평균 주문건수는 100만 건 SQL 1 select b.주문번호,b.업체번호,b.주문일자,b.주문금액,b.총주문횟수,a.평균주문금액,a.최대주문금액 from ( select 업체번호,count(*) 총주문횟수, avg(주문금액) 평균주문금액, max(주문금액) 최대주문금액 from 주문 where 주문일자 like '201509%' group by 업체번호 ) a, 주문 b where b.업체번호 = a.업체번호 and b.주문일자 like '201509%'.. 2021. 8. 12.
서술형문제2 TRACE 결과 분석 아래 SQL과 트레이스 결과를 분석해서 개선된 SQL을 작성하시오 1) 원하는 실행계획이 정확히 나오도록 힌트도 함께 기술할 것. 2) 최적의 인덱스 구성방안도 함께 제시할 것 (성능 개선에 도움이 되지 않는 필요 이상의 컬럼을 추가하는 것은 감점요인) [SQL문] select o.주문일시, o.주문번호, c.고객번호, c.고객명, c.연락처, o.주문금액, o.배송지 from 고객 c,주문 o where o.주문일시 between to_date('20150301','yyyymmdd') and to_date('20150314235959','yyyymmddhh24miss') and o.고객번호 = c.고객번호 and c.거주지역코드||c.고객명 in ('02김철수','05홍길동') order by o.주문.. 2021. 8. 11.