이제는 잘못을 잡아주는 용도보다 옵티마이져가 가지고 있지 못하는 정보를 우리가 더많이 알고 있을 때나 우리의 특별한 목적을 관철하고자 할 때 사용하게 됨
옵티마이져는 사용자의 힌트를 참조할 뿐임
다른의미에서는 바둑에서나 장기를 둘때의 '훈수'와 매우 유사하여 도움이된다면 받아들이고 가치가 없다고 생각되면 무시함
힌트가 있다는 것은 곧 그러한 유형의 액세스가 있다는 것을 의미함
새로운 힌트가 태어났다면 새로운 형태의 실행계획이 제공되었다는것이므로 숙지하여 활용해야 할것임
힌트가 다른것으로 대체되었다면 좀 더 나은방법으로 실행계획이 개선 되었음 의미함
힌트가 삭제되었다면 이제 더 이상 그러한 방법의 실행계획이 제공하지 않겠다는 것을 의미하므로 우리가 영향을 받게 되는지에 대해 연구해 볼 필요가 있음 {info:title= Useful Information} 힌트를 숙지하는 것은 중요함 {info}
만약 10% 이상의 쿼리에 힌트가 적용되고 잇다면 그원인을 찾아보아야함
옵티마이져 모드 선택이 잘못되었음
인덱스 구성이 전략적이지 못했을 가능이 높음
불필요한 힌트는 액세스 경로의 결정에 악 영향을 미치는 경우도 많음
너무 많은 힌트를 사용하게 되면 인덱스 구성이 변하였을때 애플리케이션을 찾아 일일이 수정해야 할지 모름
더 좋은 실행계획을 자연스럽게 옵티마이져가 찾을수 있음에도 불구하고 힌트로 인해 액세스 경로가 고정됨으로써 웅통성이 크게 저하될수 있음
잘못된 힌트 적용형태의 예제
ordered의 광신도
모든 SQL에 'FIRST-ROWS'라는 힌트를 무조건 삽입해둠
열심히 튜닝을 했다고 자랑하는 어떤 업체는 거의 모든 쿼리에 다양한 힌트가 사용되어 있음 {info:title=Useful Information } '시행착오법'으로 하는 튜닝이 아닌 자신이 최적의 실행계획을 알고서 그렇게 되도록 유도하기 위해 힌트를 사용해야함 {info}