Arthur C. Clarke(역주 : 2001 A Space Odyssey의 저자)는 그의 저서에서 “상당히 진보된 모든 기술은 마술과 다름없다.” 라고 말했다. 나는 그런 그의 시각이 아주 정확하다고 믿는다. 그리고 혹자는 풍부한 지식을 가진 기술자는 마술사와 구분되지 않는다고 평했다. 그런 이야기가 맞다면, 지금 독자의 손에 놓인 것은 마술에 관한 책이나 마찬가지다.
그런데 나는 이 책의 필자, 조나단 루이스(Jonathan Lewis)를 알고 지낸 오랜 기간동안(구글을 통해 뉴스그룹의 오랜 문서들을 찾아보니 대략 11년쯤 된 것 같다), 그가 마술처럼 믿기 어려운 사실을 그대로 받아들이는 것을 본 적이 없다. 어떤 일이 왜 그런 식으로 일어나는지를 알고 싶어하는 그의 성격처럼 근본적으로 그의 책은 ‘이해’에 관한 것을 담고 있다.
이해하다
1. 본질과 의미를 인지하고 파악하다
2. 긴밀한 접촉 또는 오랜 경험으로 완전히 파악하다
더 정확히 이야기하면 이것은 오라클 비용기반 옵티마이저(CBO)가 어떻게 작동하고, 왜 그렇게 작동하는지에 대한 ‘이해’를 의미한다. 조나단은 오라클 CBO에 대해 그가 이해한 것을 사례와 예제를 통해 독자에게 전달하는데 이러한 이해, 이러한 지식을 바탕으로 문제 해결을 위한 새로운 선택과 해결책을 제시하는 것이 가능해진다.
간단히 말하면 오라클 CBO는 하나의 수학 모형이다. 사용자가 입력 데이터를 넣으면(쿼리, 통계정보), 옵티마이저는 출력 데이터(실행계획)를 만들어 낸다. CBO를 성공적으로 사용하기 위해 입력 데이터에는 어떠한 것이 있는지, CBO가 그것들을 어떻게 사용하는지를 이해하는 것이 중요하다. 본인이 몇 번이나 답변해야 했던 다음의 질문을 한번 보자. 통계 정보를 수집하기 위한 가장 좋은 방법은 무엇이고, 어떤 통계를 수집해야 하는가? 간단하고 매우 직관적인 답변이 가능해 보인다. 이런 질문에 대한 정답이 있어야 하고 실제로 존재하지만, 한 가지로 모든 경우를 충족시키는 그런 식의 정답은 없다. 시스템 환경, 데이터 분포, 쿼리, 총체적 요인으로서의 시스템 유형(OLTP 혹은 DW)에 따라 정답이 달라질 수 있다. 하지만, CBO가 어떻게 작동하는지, 여러 요소들이 CBO에 어떻게 영향을 미치는지 이해하게 될 때 비로소 독자 스스로 그와 같은 질문에 대한 정답을 얻을 수 있을 것이다.
이 책에서 개인적으로 가장 마음에 드는 부분은 7장이다. 7장에서는 히스토그램의 역할이 무엇인지, CBO가 그것을 어떻게 사용하는지, 그것과 관련한 몇 가지 근거 없는 미신(CBO의 입력데이터 중 하나인 히스토그램에 대해 많은 오해가 있다) 등과 같은 주제에 대해 훌륭한 설명을 제공한다. 개인적으로 7장을 선호하는 이유 중 하나는 세미나에서 처음 들은 그 내용을 아직까지 기억하고 있기 때문이다. 약 3년 전 NoCOUG (북부 캘리포니아 오라클 사용자 그룹) 모임에서 조나단의 ‘히스토그램’세션에 참석했는데, 이때 처음으로 오라클 히스토그램을 제대로 이해했다고 느꼈다. 조나단은 일상에서 사용할 수 있는 유용한 정보를 전해 주었고, 결과적으로 나는 어려운 질문에 대한 답변을 더 잘할 수 있게 되었다. 이 책을 보면 이런 식의 실전적이고 즉시 사용 가능한 방식을 통해 여러 주제가 설명된 것을 확인할 수 있다.
조나단이 주는 비용기반 옵티마이저의 작동에 대한 식견은, DBA는 더 나은 설계자로, 개발자는 더 나은 SQL 작성자로 성장하게 하여, 결국 두 그룹 모두 향상된 실력의 문제 해결자가 되도록 할 것이다. 또한 CBO가 수행하는 복잡한 일을 이해하기 쉽게하는 예제를 풍부하게 실었다.
항상 보면, 어떤 도구가 있을 때 그것이 어떻게 작동하는지를 이해하고 나서야 그것을 안전하고 효과적으로 사용할 수 있음을 깨닫게 된다. 소프트웨어, 하드웨어, 그리고 일상의 다른 모든 것이 마찬가지이다. 그런 의미로 독자 여러분의 손에 놓여진 이 책은 오라클 CBO란 도구를 안전하고 효과적으로 사용할 수 있게 할 것이다.
Thomas Kyte
오라클 사(社), 공공 부문 부사장
오라클 사(社), 공공 부문 부사장