본문 바로가기

알아두면 좋은 정보/유용한 IT 정보

오라클 서브쿼리 스칼라서브쿼리 인라인뷰

범용으로 서브쿼리 : 쿼리안에 또 다른 쿼리를 말 합니다.

상세하게는 이케 나눌수 있겠네여

스칼라서브쿼리 ; SELECT 절에 오는 서브쿼리를 말합니다.
                 select절에서 함수처럼 사용되는 쿼리
                 하나의 레코드만 리턴, NULL 리턴도 가능

인라인 뷰 : 토탈적으로 서브쿼리라고 불리지만 From 절 뒤에 오는 쿼리를 인라인 뷰라고 말 합니다. 즉 가상의 테이블을 만드는 쿼리라고 보심됩니다.

서브쿼리 : WHERE 절 뒤에 오는 쿼리를 말합니다.


* 인라인 뷰
- 데이터를 디스크에 저장하고 있지 않기 때문에 뷰에 인덱스 생성 불가능
- but, 뷰가 엑세스하는 테이블에 인덱스가 있고 해당 인덱스를 이용할 수 있도록 뷰가 정의되어 있다면 뷰를 구성하는 원본 테이블의 인덱스 이용 가능
- 한 번 엑세스한 데이터를 다시 엑세스할 경우에는 어떠한 인덱스도 사용 불가

* 인라인 뷰의 올바른 사용
- 처리 범위를 감소시키는 형태로 수행
- 한 번 수행한 인라인 뷰를 불필요하게 다시 엑세스하지 않도록 주의

* 인라인 뷰의 종류
1. 병합 가능 인라인 뷰 : 인라인 뷰의 SQL이 재작성 되는 경우
(특징)
- 인라인 뷰의 조인 조건을 처리 범위 감소 조건으로 사용 가능
- 실행 계획에 VIEW 실행 계획이 생성되지 않음

2. 병합 불가능 인라인 뷰 : 인라인 뷰의 SQL이 재작성되지 않는 경우
- 인라인 뷰 중 성능을 가장 많이 저하시키는 경우는 병합 불가능 인라인 뷰로
  수행된 인라인 뷰가 처리범위를 감소시킬 수 있는 조건 없이
  중첩 루프 조인에서 INNER 테이블로 수행될 때다. (반드시 최적화 해야함) 
- MERGE나 PUSH_PRED 힌트를 이용하여 주 쿼리의 조건을 인라인 뷰 안으로 삽입시킬 수 있다.

디비공부하느라 고생하셨으니 잠시 쉬어가세요~~
D포탈에 나오네여

대만 미모의 바둑기사라고 하네요 헤이자자 웨이보에서 스크랩 ~~


 

 


 

 


 

 

이상.끝.