본문 바로가기
ORACLE

튜닝수업 (20161127)

by 리틀홍콩 2016. 12. 27.
728x90

ROLLUP()
테이블 액세스는 최대한 줄이도록
 EX)select  NVL( TO_CHAR(deptno), 'total' ), sum(sal) 합계
 from emp
 group by ROLLUP( deptno) ;
GROUPING()
CEIL()
GROUPING SET() **
분석함수 : 일반함수와 달리 select절, order by 절에서만 사용가능
  # 함수이름(파라미터) over( partition by ~ order by rows/range ~)
  -> 파라미터 : 함수에 따라 0~개까지 파라미터 지정가능
  -> partition by : 함수 초기화
  -> order by : 분석함수 적용시 정렬 (필수** : rank, dense_rank, row_number, ntile, lead, leg사용시)
  -> rows/range : 계산범위 지정
앞줄컬럼값(LAG), 뒷줄컬럼값(LEAD)
**BETWEEN 작성 시 앞에는 작은값 뒤에는 큰값을 적어야함

[계층형쿼리 구문] 따로 공부필요,,,
 START WITH : 계층구조의 시작조건
 **CONNECT BY : 계층구조의 전개 조건 (PRIOR 를 붙여줘야 기준이 되는 값으로 전개됨)

 인덱스구성컬럼 (결합인덱스인 경우)
  - 1번 컬럼이 포인트(= 또는 in)면 후 컬럼조건을 변경하는게 의미있음.
  (=앞쪽 조건을 IN,= 로 연속 적용해야 하는 인덱스 SCAN범위 줄일수 있음.)

SQL문 중 SORT작업 발생하는 구문
 - 조인문장 SORT MERGE 방식 동작 -> 실행계획 확인 -> 조인방법 USER_NL, USER_HASH 힌트로 변경 유도
 - INTERSECT/MINUS/UNION -> 서브쿼리 OR 조인문장으로 SQL문 변경(반드시 대용량 DB는 UNION ALL만 사용해야함)
 - ORDER BY -> 인덱스 사용해서 SORT 피할 수 있는지 CHECK >> 정렬이 참여하는 ROW수 줄이기. 정렬방법도 일부정렬만 하도록 유도
 - 분석함수 사용

정렬관련 실행계획
 - SORT ORDER BY
 - **SORT ORDER BY STOPKEY (특정 버퍼크기에만 데이터를 비교하면서 넣으므로 위에것과 비교하여 부담이 덜하다)
 
페이지 처리하는 등 ROWNUM을 반드시 붙여서 SORT ORDER BY 부담을 줄이자

수행시간오래걸리는 복잡한 문장이 반복사용되는 경우
 1. 함께 SQL문장에서 반복사용 : WITH 구문 기용 성능개선 가능
 2. 여러사용자.
 여러 SQL문에서 반복사용/참조되는 경우 : 구체화뷰 생성가능

뷰      : 컬럼값 변경되면 적용됨
테이블  : 컬럼값 변경되면 적용안됨
구체화 뷰 :  컬럼값 변경되면 적용됨
 - REFRESH기능 
 

'ORACLE' 카테고리의 다른 글

튜닝수업 (20161126)  (0) 2016.12.26
여러 Row를 한Row로  (0) 2015.11.11
DBLINK시 LOB CLOB 컬럼오류 해결  (0) 2015.10.05
SQL 튜닝방법론  (0) 2015.09.16
Nested Loop 조인  (0) 2015.09.16

댓글