오라클 힌트 및 인덱스 사용에 관한 잡담

작년9월쯤 이었을겁니다. 안 쓰는 블로그를 새로 단장해서 글을쓰기 시작한지 벌써 거의 1년이 되었네요. 이것저것 많은 일들을 겪었고 최근에는 일이 너무 바쁘다는 핑계로 블로그에 글을 전혀 올리지 못하고 있었는데요.

특히, IT블로그로서 키워가려던 계획은 완전히 실패를 하였고, 잡블로그로 전환이 되어버렸네요.

이제부터라도 차근차근 관련정보를 모아서 가볍지만 영양가 있는 포스팅을 꾸준히 해보아야 겠습니다.

 

오라클 힌트란 무엇인가?

이제 막 쿼리를 만져보고 계시는 신입개발자분들은 이부분이 참 애매하실꺼에요. 그냥 조회해도 잘되는데 힌트가 뭐지? 왜 하는건가? 궁금증이 많으실건데 건수가 1억건... 10억건...... 늘어나게 되면 쿼리의 오라클 힌트가 얼마나 중요한지 아실 수 있을꺼에요.

저도 되는데로 함부로 쿼리를 수정하다 많이 혼났던 기억이 나는데요. 필수는 아니지만 플랜을 보고 테이블속도가 어떻게 하면 잘나올까 고민을 지금도 계속하고 있습니다.

100건의 걸그룹 데이터가 있다고하면 정리를 위해 오라클은 차곡차곡 ㄱ,ㄴ,ㄷ 순으로 색인을 만드는 작업을 인덱스를 생성한다고 표현을 하며 이러한 인덱스를 활용해서 자료를 좀더 쉽게 찾고자 하는 방법이 힌트라고 생각하시면 편하실것 같습니다.

힌트를 어떻게 쓰느냐에 따라서 속도차이도 엄청 날수 있는데요. 예를들어 [트와이스] 걸그룹을 찾는데 ㄱ부터 찾는다면 ㅎ부터 꺼꾸로 찾는것보다 엄청 느리겠죠

이런것이 튜닝에 영향을 미칩니다. 인덱스를 생성할때 역순으로 해야할 필요가 있는건 역순으로 생성후 힌트를 태우면 속도가 좀더 빨라지겠죠.

힌트의 종류는 상당히 많습니다. 인덱스를 순차적으로, 역순으로 전체, 조인, 해쉬, 반복 등등 활용할 수 있는 모든 방법을 사용할 수 있는데요. 저도 아직까지 이정도까지는 해보지는 않았습니다.

오늘 포스팅은 원론적인 이야기로 잡담을 좀 하였는데요. 시간이 날때 인덱스의 생성및 활영법과 힌트에 대해서 자세히 말씀드릴께요