지금 막 마지막 책장을 넘겼습니다. 기분이 후련하네요. Dan Tow가 쓴 SQL Tuning은 방법론적인 책입니다. 생소한 업무의 SQL의 튜닝 요청을 받았을 때 어떻게 해야 할까요. 10개, 20개가 넘는 table이 from절에 놓여 있으면 어느 테이블부터 driving을 해서 어떤 순서로 join을 해야 할까요. 이 책은 이것에 대해서 명확한 해답을 내놓습니다.
SQL Tuning은 SQL을 튜닝함에 있어 Diagram 방법을 사용합니다. 즉, 트리 형식의 그림을 그리고 거기에 join ratio와 filter ratio를 각각 표기해서 driving이 시작될 table을 정하고 join될 테이블의 순서를 결정합니다. 이 책의 내용은 이게 전부입니다. 어떻게 보면 상당히 간단합니다. 그러나 상당히 유용하게 취급되어야 할 내용이며 심도 있게 생각해보아야 할 내용이기도 합니다. SQL이 수행되는 비용을 줄이는 핵심은 적은 수의 rows를 읽어들여서 join의 회수를 줄이는 것입니다. Dan Tow의 방법을 적용하면 이러한 목적에 거의 다가설 수 있을 것 같습니다. 설사 optimizer가 통계를 사용해 더 나은 방법을 제시하더라도 그러한 실행계획이 다른 프로덕션 시스템에서 일괄되게 적용되는 것은 아니겠지요. 이 책은 적어도 어느 정도의 성능을 보장해 줄 수 있는 실행계획을 생성하는 것에 치중합니다.
중급 정도의 개발자라면 한 번 쯤은 보아야 할 책입니다. 그러나, 영어가 좀 난해한 감은 있습니다. 다른 책보다 더 그런 느낌이 드네요.