DBA가 되고 싶은 병아리

서브쿼리와 성능 문제 이해하기(1) 본문

Oracle Study/Performance Tuning

서브쿼리와 성능 문제 이해하기(1)

미스틱스 2015. 3. 2. 16:26

서비쿼리에 대한 기본 내용 이해하기


서브쿼리란?

Where절에 비교조건으로 사용되는 Select 쿼리

서브쿼리를 이용하여 절차적인 SQL 작성이 쉽다


서브쿼리를 사용하지 않고 조인으로 처리가 가능한 SQL임에도 불구하고, 단지 SQL 작성이 쉽다는 이유하나만으로

서브쿼리를 남용 할 경우 => 성능문제가 발생할 가능성이 있음

SQL에 서브쿼리가 여러 개 존재할 경우, Optimizer가 최적화 과정에서 잘못된 Cost 계산을 하는 경우가 많이 발생


서브쿼리를 사용해야 할 경우

서브쿼리를 사용해야 의도한 결과 값을 가져올 수 있는 경우

서브쿼리를 이용할 경우 성능이 좋아지는 SQL

=>두 가지 경우가 아니라면 Join으로 작성하는 것이 Optimizer에게 더 좋다.


서브쿼리의 개수가 많은 SQL -> 비효율적인 실행계획이 수립될 가능성이 있음

-> 사용은 해도 되나 동작방식이나 발생 가능한 성능 문제에 대한 이해 없이 무분별하게 사용하는 것은 좋지 않음