DB2는 기본적으로 optimizer에 의해 access path가 결정이 납니다.
이 optimizer는 조인 방법, 테이블 엑세스 순서, 인덱스 사용 방법, 쿼리의 재작성 여부등의 강력한 성능향상 알고리즘으로 구동을 하죠.
따라서, admin의 입장에서는 현재 진행되는 쿼리가 어떠한 access path를 사용하는지를 항상 관심있게 지켜보고, 속도 향상을 위해서 새로운 인덱스나 관리 유틸리티(reorg, runstats)등을 운용해야 합니다.
서론이 길었는데 access path를 보는 방법은 다음과 같습니다.
Dynamic SQL의 경우 : dynexpln이란 명령을 db2cmd 창 혹은 db2clp 창에서 수행하시면 db 명 userid/password, 원하는 query등을 물어옵니다. 결과값은 파일로 받아서 보실 수 있습니다.
Static SQL의 경우 : db2expln이란 명령을 역시 db2cmd 창 혹은 db2clp 창에서 수행하시면 db명 userid/password, 원하는 package를 물어옵니다. 역시 결과값은 파일로 받아보실 수 있죠...
이 두가지 방법의 결과값을 보시면 아시겠지만, 상당히 보기 어려운 형태로 출력됩니다. 따라서 DB2 UDB에서는 제어센터에서 위의 작업을 수행할 수 있도록 도와줍니다. 이를 visual explain이라고 하는데, 사용법은 제어센터를 실행시킨 후 해당 데이터베이스에서 오른쪽 마우스버튼을 클릭하시면 SQL Explain이란 항목이 보이실 겁니다. 여기 들어가셔서 원하는 쿼리를 입력하시면 조금 후에 위의 두 방법보다 훨씬 깔끔한 그림을 보실 수 있죠.
좀 더 자세한 사용법은 직접 익히시는 것이 스킬 향상에 도움이 되실 듯..
감사합니다.
-- 노성섭 님이 쓰신 글:
>> DB2에서 실행계획을 보고 싶은데 어떻게 해야 하죠..?
>>
>> 메뉴얼에 보면 explain명령이 몇개 있던데... 어떻게 해야 하는지 잘 몰라
>>
>> 서요... 여러 고수님들의 답변을 바랍니다..
|