-
나도 WITH절을 써보자개발/Database 2018. 7. 26. 13:50
출처는 내 영혼의 구원자 구루비
http://wiki.gurubee.net/pages/viewpage.action?pageId=27427118
http://www.gurubee.net/lecture/1505
http://wiki.gurubee.net/pages/viewpage.action?pageId=27427116
1. WITH절 사용 시 장점 = 데이터 중복 액세스 제거
- SQL에서 동일한 데이터를 반복 처리할 경우, 성능개선방법으로 WITH절을 많이 활용
- 데이터 건수는 적으나 데이터 추출 시 I/O 처리량이 많은 경우에 효과적
- 여러 부분에 사용될 데이터를 1회 추출하여 Global Temporary Table 에 저장하고,
요청 시 저장된 데이터만 읽어 처리하면 되므로 SQL 성능 개선 및 I/O처리량 감소 가능
2. WITH절을 사용하려면?
- WITH 명칭 AS ( SELECT 쿼리)
SELECT
FROM 명칭
3. 예시
WITH A AS (
SELECT name
,age
FROM student
)
SELECT name
FROM A
4. WITH 절의 동작 방식
- Materialize 방식 또는 Inline View 방식으로 수행
- 제어힌트 : /*+MATERIALIZE */ 또는 /*+INLINE*/
- MATERIALIZE 동작방식 : Global Temporary Table을 생성한 후, WITH 절에서 추출한 결과를 저장.
WITH절 호출 시 Global Temporary Table을 읽어서 처리함
- INLINE VIEW 동작방식 : Global Temporary Table을 사용하지 않고 inline view 형태로 수행함
* INLINE VIEW = FROM 절에 오는 서브쿼리
'개발 > Database' 카테고리의 다른 글
오라클 DB 테이블스페이스 용량 늘리기 (0) 2018.08.02 SQL을 활용해서 스네이크 케이스를 카멜 케이스로 바꾸기 (0) 2018.07.26 DELETE VS TRUNCATE VS DROP (0) 2018.07.26 DECODE 와 CASE : 과연 그놈이 그놈일까 (0) 2018.07.18 [MariaDB] MariaDB 에서 ROW NUMBER() 사용하기 (0) 2018.01.23 댓글