본문 바로가기

[ORACLE] Group by, Rollup, Cube의 차이점 ◈ ROLLUP operator - ROLLUP구문은 GROUP BY절과 같이 사용 되며, GROUP BY절에 의해서 그룹 지어진 집합결과에 대해서 좀 더 상세한 정보를 반환하는 기능을 수행합니다. - SELECT절에 ROLLUP을 사용함으로써 보통의 select된 데이터와 그 데이터의 총계를 구할 수 있습니다. ※ 우선 아주 간단한 예제부터 살펴 보겠습니다. (scott유저의 emp테이블을 가지고 테스트 했습니다.) -- Group By를 사용해서 직업별로 급여 합계를 구하는 예제 입니다. SELECT job, SUM(sal) FROM emp GROUP BY job JOB SUM(SAL) ---------- ---------- ANALYST 600 CLERK 3200 MANAGER 33925 PRESI.. 더보기
[ORACLE] CONNECT BY Dummy Table(흔히 Copy_t 라고 불림) 대신에 9i 이후부터는 Connect By level 문을 사용하곤 한다. 하지만 조심하지 않으면 해당 SQL이 종료되지 않는 장애를 만나게 된다. 오늘은 Connect By level 문을 오용하는 사례와 해결책을 제시하고자 한다. 상황 업무팀에서 새로운 SQL을 작성하고 컴파일하여 운영 시스템에 반영되었다. 문제의 SQL이 실행되자 너무 오래걸려서 Time Out이 발생하였다. 아래는 상황을 최대한 간단히 표현하여 테스트를 수행하기 위한 스크립트 이다. --입사년도 테이블 생성 create table hire as select '2006' hire_date from dual union all select '2003' hire_date from dua.. 더보기
ORACLE HINT 정리 /*+ ALL_ROWS */ explicitly chooses the cost-based approach to optimize a statement block with a goal of best throughput (that is, minimum total resource consumption) 전체 RESOURCE 소비를 최소화 시키기 위한 힌트. Cost-Based 접근방식. /*+ CHOOSE */ causes the optimizer to choose between the rule-based approach and the cost-based approach for a SQL statement based on the presence of statistics for the tables accessed.. 더보기