[98일차] 오라클 힌트

저요·2022년 12월 29일

2022 100th day challenge

목록 보기
95/97

오라클 힌트란?

오라클 힌트란 무엇이냐면 말 그대로 힌트며, 힌트를 주는 대상은 옵티마이저다. 옵티마이저가 잘못된 판단으로 비효율적인 실행계획을 수립했을 때 힌트를 주어서 풀어낼 수 있다. 이 쿼리에서는 어떤 인덱스를 사용해야 하는지, JOIN의 순서와 방식에 관한 것을 정해서 알려주기 때문에 옵티마이저가 수립할 실행계획에 영향을 미칠 수 있다. 또 오라클 힌트는 약간의 강제성을 띄고 있다.

어떨 때 사용하면 좋은가?

옵티마이저가 잘못된 판단으로 인덱스를 사용하지 않고 풀스캔을 진행할 때,
잘못된 방식으로 JOIN을 해서 비효율적으로 쿼리를 수행할 때 등등...
옵티마이저가 제대로 실행계획을 수행하고 있는지를 파악할 수 있어야 하기 때문에, 힌트를 사용하기 위해서는 실행계획의 해석 능력도 요구된다.

오라클 힌트를 사용할 때의 유의사항

오라클 힌트를 사용할 때의 유의사항은 기본적으로는 오라클 힌트를 사용하지 않는것이 좋다. 쿼리를 작성 할 때는 옵티마이저가 올바른 판단을 할 것이라는 판단 하에 쿼리를 작성해야한다. 하지만 예상한 것보다 시간이 많이 걸리거나 I/O비용이 생각보다 크다면 적절하게 힌트를 사용하면 된다. 때문에 대부분 힌트는 작성단계가 아닌 튜닝 단계에서 많이 사용한다.

어떤식으로??

SELECT /*+힌트1 힌트2*/ FROM ...

만약 힌트를 잘못사용하거나 오타가 있다고 해서 오류가 나지는 않고 내부적으로 무시된다.

참고

https://youtu.be/-usS_FOR4tc

profile
웹개발

0개의 댓글