Everything counts - 라키의 IT 블로그

[Oracle] 오라클 WITH란? 본문

프로그래밍/DB

[Oracle] 오라클 WITH란?

벡스파 2021. 10. 8. 15:57

- 이름이 부여된 서브쿼리. 반복되는 부분을 효과적으로 재사용하기 위해 만든다.

- view 와의 차이점 : view는 만들면 drop할때까지 유지되지만, with문은 쿼리 내에 정의 된 경우 쿼리 안에서만 실행된다.

- 사용 이유 : 처음 한번만 parsing되고 계획수립되므로 자주 사용 시 쿼리 성능향상에 도움된다.

 

with test_emp as
(
select * from emp
)


select * from test_emp

* mybatis에서 사용시 <sql> 태그와도 같이 사용되며 코드 안에서 include만 선언하면 되어 재사용성이 높아진다.

 

<sql id="test">
	with test_emp as
	(
	select * from emp
	)
<sql>



<select id="getList" parameterType="empVO">
	<include refid="test">
	select * from test_emp
</select>