티스토리 뷰

DB/오라클

오라클 쿼리 튜닝(함수 때문에 속도가 느릴때)

개발자와코더사이가 PM일까? 2018. 3. 9. 00:00
반응형

쿼리를 작성을 할때 보면 쿼리안에서 여러가지 이유로 select문에서 함수를 사용할 때가 많습니다.

예를 들어서 

select emp_no, get_emp_info(emp_no) as emp_info from emp_tab 처럼요.

이때 get_emp_info가 어떤 함수일지는 모르지만 이런식으로 사용하게 되면 데이터가 많을 수록 쿼리의 속도가 많이 느려집니다.

그렇다고 해서 함수를 사용하지 않고 inner join, left outer join를 하는 것도 추후 유지보수 시 힘들게 되고요.

만약 사용하고 있는 오라클 DB 버젼이 10g 이상이라면 쿼리를 스카라 서브쿼리를 사용하는 것을 권유합니다.

* 스칼라 서브쿼리이란 : SELECT문에 있는 서브쿼리

[이전]

select emp_no, get_emp_info(emp_no) as emp_info from emp_table

[이후]

select emp_no, (select get_emp_info(emp_no) from dual) as emp_info from emp_table


이렇게 하면 똑똑한 오라클의 실행계획을 보시면 fast dual로 변경되는 것을 확인 할수 있습니다. 물론 속도 향상도 볼 수 있고요.

자세한 내용은 [http://www.gurubee.net/article/14081]을 참고해주시면 감사하겠습니다.


요즘에 개발 밖에 하지 않아서 개발 이야기 밖에 할 것이 없네요..ㅜ.ㅜ

즐거운 주말 보내세요^0^ 

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함