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 |
댓글