====3.3.1. 힌트(Hint)의 활용 기준==== \\ === 힌트(HINT)란? === 사용자의 요구를 옵티마이져에게 전달할 수 있는 중요한 보조 수단 \\ * 과거 힌트가 탄생한 이유 : 초기 **옵티마이져의 실수를 보완**해주기 위해서 였음 * 현재 힌트가 사용되는 경우 : 잘못을 잡아주는 용도보다 옵티마이져가 가지고 있지 못하는 정보를 우리가 더많이 알고 있을 때나 우리의 **특별한 목적을 관철**하고자 할 때 사용하게 됨 === 힌트의 특징 === * 옵티마이져는 사용자의 힌트를 참조할 뿐임 * 다른의미에서는 바둑에서나 장기를 둘때의 '훈수'와 매우 유사하여 도움이된다면 받아들이고 가치가 없다고 생각되면 __**무시함**__ === 힌트에 대한 고찰 === * 힌트가 있다는 것 : 곧 그러한 유형의 액세스가 있다는 것을 의미함 * 새로운 힌트가 태어남 : 새로운 형태의 실행계획이 제공되었다는것이므로 숙지하여 활용해야 할것임 * 힌트가 다른것으로 대체 : 좀 더 나은방법으로 실행계획이 개선 되었음 의미함 * 힌트가 삭제 됨 : 이제 더 이상 그러한 방법의 실행계획이 제공하지 않겠다는 것을 의미하므로 우리가 영향을 받게 되는지에 대해 연구해 볼 필요가 있음 * 만약 10% 이상의 쿼리에 힌트가 적용되고 잇다면 그원인을 찾아보아야함 -옵티마이져 모드 선택이 잘못될 가능성이 있음 -인덱스 구성이 전략적이지 못했을 가능성이 높음 * 불필요한 힌트는 액세스 경로의 결정에 악 영향을 미치는 경우도 많음 -너무 많은 힌트를 사용하게 되면 인덱스 구성이 변하였을때 애플리케이션을 찾아 일일이 수정해야 할지 모름 -더 좋은 실행계획을 자연스럽게 옵티마이져가 찾을수 있음에도 불구하고 힌트로 인해 액세스 경로가 고정됨으로써 웅통성이 크게 저하될수 있음 === 결론 === '시행착오법'으로 하는 튜닝이 아닌 자신이 최적의 실행계획을 알고서 그렇게 되도록 유도하기 위해 힌트를 사용해야함 // ** SYNTAX ** {{:study:oracle:datadb:4week_2:001.jpg|}} ** 예(Example) ** {{:study:oracle:datadb:4week_2:00000001.jpg|}} // ==참조한문서== "오라클클럽" http://wiki.oracleclub.com/pages/viewpage.action?pageId=1966253&