사용자 도구

사이트 도구


study:oracle:datadb:4week_2:chap1

3.3.1. 힌트(Hint)의 활용 기준


힌트(HINT)란?

사용자의 요구를 옵티마이져에게 전달할 수 있는 중요한 보조 수단


  • 과거 힌트가 탄생한 이유 : 초기 옵티마이져의 실수를 보완해주기 위해서 였음
  • 현재 힌트가 사용되는 경우 : 잘못을 잡아주는 용도보다 옵티마이져가 가지고 있지 못하는 정보를 우리가 더많이 알고 있을 때나 우리의 특별한 목적을 관철하고자 할 때 사용하게 됨

힌트의 특징

  • 옵티마이져는 사용자의 힌트를 참조할 뿐임
  • 다른의미에서는 바둑에서나 장기를 둘때의 '훈수'와 매우 유사하여 도움이된다면 받아들이고 가치가 없다고 생각되면 무시함

힌트에 대한 고찰

  • 힌트가 있다는 것 : 곧 그러한 유형의 액세스가 있다는 것을 의미함
  • 새로운 힌트가 태어남 : 새로운 형태의 실행계획이 제공되었다는것이므로 숙지하여 활용해야 할것임
  • 힌트가 다른것으로 대체 : 좀 더 나은방법으로 실행계획이 개선 되었음 의미함
  • 힌트가 삭제 됨 : 이제 더 이상 그러한 방법의 실행계획이 제공하지 않겠다는 것을 의미하므로 우리가 영향을 받게 되는지에 대해 연구해 볼 필요가 있음
  • 만약 10% 이상의 쿼리에 힌트가 적용되고 잇다면 그원인을 찾아보아야함
    1. 옵티마이져 모드 선택이 잘못될 가능성이 있음
    2. 인덱스 구성이 전략적이지 못했을 가능성이 높음
  • 불필요한 힌트는 액세스 경로의 결정에 악 영향을 미치는 경우도 많음
    1. 너무 많은 힌트를 사용하게 되면 인덱스 구성이 변하였을때 애플리케이션을 찾아 일일이 수정해야 할지 모름
    2. 더 좋은 실행계획을 자연스럽게 옵티마이져가 찾을수 있음에도 불구하고 힌트로 인해 액세스 경로가 고정됨으로써 웅통성이 크게 저하될수 있음

결론

 '시행착오법'으로 하는 튜닝이 아닌 자신이 최적의 실행계획을 알고서 그렇게 되도록 유도하기 위해 힌트를 사용해야함 

SYNTAX 예(Example)

참조한문서
study/oracle/datadb/4week_2/chap1.txt · 마지막으로 수정됨: 2010/05/26 17:18 저자 zummaz