태터데스크 관리자

도움말
닫기
적용하기   첫페이지 만들기

태터데스크 메시지

저장하였습니다.

비주얼 SQL 튜닝?

오라클/SQL 튜닝 2010.10.21 13:49
복잡한 SQL 튜닝을 어떻게 하면 손쉽게, 정확하게 자동화할 것인가는 이 업계의 오랜 숙원이자 도전과제입니다. 오라클이 제공하는 자동 SQL 튜닝(Automatic SQL Tuning) 기능조차도 외면받는 걸 보면 이것이 얼마나 어려운 일인지 알 수 있습니다.

Dan Tow의 저서 [SQL Tuning]을 보면 SQL 문장을 비주얼한 다이어그램으로 표현해서 최적의 실행 계획을 찾는 방법을 기술하고 있습니다. 대단히 매력적인 방법이고, 실제로 쿼리 튜닝을 할 때는 우리 머리 속에서는 이런 일이 발생합니다. 이런 개념을 GUI로 구현한 툴이 있어서 소개합니다.

DB Optimizer라는 툴인데요, 국내에 정식 공급되는지는 모르겠습니다. 하여간 이 툴이 제공하는 VST(Visual SQL Tuning) 기능을 보면 SQL 다이어그램 기반의 튜닝 기법을 구현하기 위해 대단한 노력을 기울이고 있음을 알 수 있습니다.

간단한 예를 들어, 아래와 같은 쿼리가 있다고 가정하면

select distinct * from foo.a, foo.c, foo.d, foo.g
WHERE a.planted_date = to_date('02/10/2008','dd/mm/yyyy')
AND a.pears = 'D'
AND a.green_beans = '1'
AND a.planted_date = c.planted_date
AND a.pears = c.pears
AND a.zuchinis = c.zuchinis
AND a.brocoli = c.brocoli
AND a.planted_date = d.planted_date
AND a.pears = d.pears
AND a.harvest_size = d.harvest_size
AND c.oranges = d.oranges
AND c.apples = d.apples
AND (d.lemons = 0 OR d.lemons IS NULL)
AND a.planted_date = g.planted_date
AND a.pears = g.pears
AND a.harvest_size = g.harvest_size
AND c.oranges = g.oranges
AND c.apples = g.apples
AND (g.lemons = 0 OR g.lemons IS NULL)
and a.zuchinis='0236'
ORDER BY a.zuchinis, a.brocoli;
위의 쿼리를 다이어그램으로 표현하면 아래 그림과 같습니다.

전체 로우수가 1,777,110건이고 필터율이 0.674%인 테이블 A를 선행으로 테이블 C를 조인하면 44,106건이 됩니다. A --> C 의 순서로 조인하는 것이 유리할 것이라는 것을 직관적으로 알 수 있습니다(정확한 해석법은 매뉴얼 참조). 이런 방식으로 조인을 이어나가면 아래와 같은 순서가 됩니다.

지나치게 간단한 예이지만, 대단히 흥미롭습니다. 이 정도까지 구현했다는 것이 대단합니다.

DB Optimizer의 SQL Tuning 모듈은 VST 외에도 많은 기능들이 있는데 전체 그림은 아래와 같습니다.

관심있으신 분들은 다운로드받아서 사용해보셔도 좋겠습니다. Dan Tow의 저서 [SQL Tuning]도 기회가 되면 읽어보시구요.

저작자 표시
신고

'오라클 > SQL 튜닝' 카테고리의 다른 글

조인 순서 제어하기 2  (2) 2010.11.04
조인 순서 제어하기  (3) 2010.10.25
비주얼 SQL 튜닝?  (6) 2010.10.21
Batching NLJ에 대한 오라클 매뉴얼의 설명  (0) 2010.10.11
PLAN_HASH_VALUE  (0) 2010.10.06
Trackbacks 2 : Comments 6
  1. proud0 2010.10.22 10:40 신고 Modify/Delete Reply

    제가 알기론 공식 공급되고 있습니다.

    http://www.devgear.co.kr/products/db-optimizer-xe/

    • 욱짜 2010.10.22 19:30 신고 Modify/Delete

      좋은 정보 감사합니다. 최신 버전이 반영되어 있지 않을거로 보니 아직 시장의 반응은 없는 듯 하네요.

  2. 2dong0 2010.10.24 02:02 신고 Modify/Delete Reply

    와 정말 멋진데요~^^ 도스에서 윈도우로 넘어가는 것처럼 혁명 같습니다.^^

    • 욱짜 2010.10.25 13:12 신고 Modify/Delete

      이런 방법론이 확실히 장점이 있는데, 현실적인 문제가 있는거 같습니다. 이 툴을 사용해서 SQL 튜닝을 하려면 SQL Diagram을 작성하고 해석하는 방법을 알아야 하는데 제법 학습이 필요하거든요. 투자가 필요한 셈인데, 그걸 유도하기가 쉽지는 않아 보입니다.

  3. extremedb 2010.10.26 15:22 신고 Modify/Delete Reply

    헐 ~ 이런 툴이 있었네요.
    제가 찾고 있던 종류입니다.
    감사합니다.

    • 욱짜 2010.10.26 15:56 신고 Modify/Delete

      누군가는 이 툴을 보고 눈이 반짝할 줄 알았습니다. ㅎㅎ

      혹시 실제로 사용하시게 되면 기술적인 평가를 해주셔도 좋겠습니다!

Write a comment

티스토리 툴바