IT 기술/Oracle

DW 구축시에 쓸만한 Oracle Analytic function과 [오라클 실전 튜닝]책 소개

ㅇㅔ ㄷㅡ 2008. 6. 26. 03:16
정보문화사에서 출판된 "Perfect! 오라클 실전 튜닝"이라는 책의 16장에 소개된 내용이며, 오라클 DW Guide문서에도 소개된 내용입니다. 물론 DW Guide는 영문입니다. 그래서 "Perfect! 오라클 실전 튜닝"을 구매하려 했으나 절판되었네요. 아직까지 재고가 있는 곳이 있는지 알아봐야 겠습니다.

오라클 실전 튜닝 상세보기
권순용 지음 | 정보문화사 펴냄
데이터베이스 성능 데이터 수집부터 튜닝까지, 데이터베이스 튜닝을 위한 지침서. 이 책은 데이터베이스의 원리를 파헤치고 실무 중심의 예제를 수록해 데이터베이스의 모든 작업을 최적화하는 방법을 수록하고 있다. 이 책은 튜닝 관련 항목을 체계적으로 기록하였다. 특히 Join, Partition, Cluster Factor, Index 선정 및 튜닝, Application 분석 및 튜닝 등은 독창적이며 시스템의 성능 향상에 많은 효과를 기대할 수 있는 튜



Analytic Function
 Analytic Function은 오라클 8i 버전부터 본격적으로 제공되었다.

 특징
 - 주기적인 데이터 분석 작업에 이용
 - SQL 양의 감소로 인한 운영의 용이
 - 성능 향상
 - Group By 사용 감소
 SQL> SELECT DEPTNO, 이름, SAL COUNT(DEPTNO) OVER (PARTITION BY DEPTNO ORDER BY SAL) FROM 사원;

 10 김희진 250 3
 10 선애란 300 3

 Syntax ~ 함수명 OVER (PARTITION BY 컬럼명 ORDER BY 컬럼명) 함수

 LAG(컬럼명, 숫자, NULL일때 값) OVER (PARTITION BY 컬럼명 ORDER BY 컬럼명)
 LAG(컬럼명, 숫자) OVER (PARTITION BY 컬럼명 ORDER BY 컬럼명)
 숫자에 해당하는 만큼 이전 ROW의 값
 10 김희진 250
 20 선애란 300 250
 30 홍길동 400 300

 LEAD(컬럼명, 숫자) OVER (PARTITION BY 컬럼명 ORDER BY 컬럼명)
해당하는 값 만큼 다음 ROW의 값을 가져온다.
 10 김희진 250 300
 20 선애란 300 500
 30 홍길동 500 400
 40 이산 400 340

 AVG COUNT MIN MAX RANK FIRST_VALUE LAST_VALUE ROW_NUMBER ~ ROW_NUMBER() OVER(PARTITION BY 컬럼명 ORDER BY 컬럼명)