글
12. 집계 보고서 작성 기법
먹고는 살아야지;;;
2009/01/11 22:56
1. Rollup Cube
롤업 : 소 그룹간의 소계를 계산
큐브 : group by 항목들 간의 다차원적인 소계를 계산
- 롤업이나 큐브에 의한 소계가 계산된 결과에는 grouping(expr) = 1 이 표시되고,
그외의 결과에는 grouping(expr) = 0 이 표시됨.
- grouping 함수와 decode 를 이용해, 소계를 나타내는 필드에 원하는 문자열을 지정할 수 있음
※ grouping columns 이 가질수 있는 모든 경우에 대하여 subtotal을 생성해야하는 경우에는 cube를 사용하는 것이 바람직하나, rollup 에 비해 시스템에 많은 부담을 주므로 사용에 주의해야함.
2) 일반적인 group by
3) rollup 함수
4) grouping 함수
5) decode + grouping 함수
6) Cube 함수
7) 수정 전 SQL
※ TAB13에 대한 테이블 스캔이 3번이나 발생함.
8) 수정 후 SQL※ 크게 달라진 부분은 3번 스캔하는 부분을 1번으로 줄인 부분. 기존에 3번 스캔하는 이유가 되었던 소계와 총합 부분을 (2번의 scan 이 추가됨) rollup 함수를 이용해서 1번의 scan 으로 구현하므로 자원 사용 및 수행 속도를 개선할 수 있음.
2. Grouping Sets
1) 서브쿼리의 정의 및 특성
오라클 9i 버전 부터는 칼럼간의 다양한 합성도 가능하며, grouping sets 을 이용해 더욱 다양한 집합을 만들 수 있음.
2) Grouping Set 을 이용한 새로운 집합의 생성
3. Sum(Decode) ~ Group by
1) sum(decode) ~ group by 튜닝
1년 12달, 1년 4분기, 고정된 과목 종류등 정해진 칼럼의 수가 고저되어 있다면, 매우 유용하게 사용할 수 있는 SQL 튜닝 기법
2) sum(decode) ~ group by 튜닝 적용
더보기
4. 이것만은 꼭!
더보기