본문 바로가기

SQLP9

계층형 쿼리 오라클에서 사용할 수 있는 쿼리 구문. 한 테이블에 담겨있는 레코드들이 상,하관계를 이루며 존재할 때 이 관계에 따라 레코드를 표현할 수 있는 구문입니다. EMP 테이블로 테스트 해보며 정리해보겠습니다. SQL> select * from emp; EMPNO ENAME JOB MGR HIREDATE SAL COMM DEP ----- ---------- --------- ----- ------------------- --------- --------- --- 7369 SMITH CLERK 7902 2020/11/19 20:08:48 800 20 7499 ALLEN SALESMAN 7698 2020/11/19 20:08:48 1600 300 30 7521 WARD SALESMAN 7698 2020/11/19 .. 2021. 8. 26.
조건절 pushdown 과 서브쿼리 Unnesting 공부하면서 헷갈렸던 두 개념입니다. 서브쿼리 Unnest? 동일한 결과를 보장하는 조인문으로 변환하고 나서 최적화합니다. (즉, 서브쿼리를 조인문처럼 수행한다는 뜻입니다) NO_UNNEST는 서브쿼리를 원래대로 둔 상태에서 최적화합니다. 메인쿼리와 서브쿼리를 별도의 서브플랜으로 구분해 각각 최적화를 수행하며, 이때 서브쿼리에 필터 오퍼레이션이 나타납니다. 관련 힌트 UNNEST : 조인방식으로 유도 NO_UNNEST : 메인-서브쿼리 방식으로 유도 10g부터는 서브쿼리 Unnesting이 비용기반 쿼리변환 방식으로 전환되었습니다. NO_UNNEST 힌트 예제 no_unnest 힌트를 사용하면 FILTER 조건으로 서브쿼리가 마지막에 처리되는 것을 확인할 수 있습니다. (ID=5) select * from.. 2021. 8. 25.
서술형 문제 테이블을 한번만 읽고 SQL 작성 해당 출처에서의 문제 중 EMP 테이블을 이용한 문제가 있어서 문제를 풀고 정리해보았습니다. 아래는 EMP의 데이터입니다. 이 데이터를 사용하여 아래의 쿼리를 완성하세요 단 테이블을 여러번 읽으면 성능이 안좋으니 한번만 읽어서 보이게 하세요! 전체사원수/부서개수/부서별평균사원수/부서별최대사원수/부서별최소사원수/최소사원의부서/최대사원의부서 튜닝 point 함수를 적절히 사용하여 원하는 값을 뽑아낼 수 있는지가 중요할것 같습니다. 정답 더보기 SQL select sum(a.직원수) as 전체사원수,count(a.deptno) as 부서개수,round(avg(a.직원수),2) as 부서별평균사원수 ,max(a.직원수) as 부서별최대사원수,min(a.직원수) as 부서별최소사원수, min(최소사원수의부서) a.. 2021. 8. 18.
서술형문제 6 야간배치 SQL 튜닝 주문, 배송, 고객 정보를 읽어 주문배송 테이블에 입력하는 야간 배치(Batch) 프로그램을 튜닝하려고 한다. 대상 주문 데이터는 2016년 6월부터 8월까지 3개월치다. 월별 주문건수는 1,000만건이다. 월별 배송건수는 900만건이다. 배송은 주문이 완료된 후에 시작된다. 고객 수는 500만명이다. 주문 : 주문인자 기준 월단위 Range 파티션 배송 : 배송일자 기준 월단위 Range 파티션 주문 테이블 주문_PK : 주문번호 주문_N1 : 주문상태코드 + 주문일자 (Local Partition) 주문_N2 : 주문고객번호 + 주문일자 (Local Partition) 배송 테이블 배송_PK : 배송번호 배송_N1 : 주문번호 + 배송일자 (Local Partition) 배송_N2 : 배송일자 + 배.. 2021. 8. 16.