본문 바로가기

보물창고/IT 정보

DB2의 컬럼 그룹 통계에 대한 이해

반응형


기사 제목
DB2의 컬럼 그룹 통계에 대한 이해

포스팅 아래 기사원문 주소로 가시면 기사 전체내용과 자세한 설명 쿼리문들 볼 수 있습니다







요약
 옵티마이저는 여러 술어 사이에 상관 관계가 있는 경우 리눅스, 유닉스, 윈도(Linux®, UNIX®, Windows®)용 DB2®에서 다중 컬럼 통계를 사용하여 더 나은 쿼리 접근 계획을 결정하고 쿼리 성능을 높일 수 있습니다. 이 글에서는 다중 컬럼 통계를 사용하여 DB2 9.5에서 술어 사용을 광범위하게 확장하는 옵티마이저의 향상된 기능을 활용하는 방법을 설명합니다.





소개
"Understand column group statistics in DB2"(developerWorks, 2006년 12월)에서는 컬럼 그룹 통계 수집의 중요성과 DB2 SQL Optimizer(이후 옵티마이저)가 두 개 이상의 로컬 술어나 병합 동등 술어(join equality predicate) 사이의 통계적 상관 관계를 검색하는 데 다중 컬럼 통계를 사용하는 방법을 설명한다. DB2 9.5에서 옵티마이저는 다중 컬럼 통계의 사용을 더 광범위한 술어로 확장했다.





목차

여러 로컬 동등 및 로컬 IN 술어의 통계적 상관 관계

Example 1: C1 IN ( <VALUE LIST> ) AND C2 = literal

Listing 1. 샘플의 테스트 환경

Listing 2. SAMPLE 데이터베이스의 EMPLOYEE 테이블에 대한 쿼리

Listing 3. EMPLOYEE 테이블에서 반환된 레코드

Listing 4. EXPLAIN 테이블에 쿼리 접근 계획 세부사항 삽입

Listing 5. 쿼리 접근 계획

Listing 6. 카디널리티 추정이 더 나은 쿼리 접근 계획

예제 2: C1 IN ( <VALUE LIST> ) AND C2 IN ( <VALUE LIST> )

Listing 7. 보너스와 급료 쿼리

Listing 8. EMPLOYEE 테이블에서 반환된 레코드

Listing 9. EXPLAIN 테이블에 쿼리 접근 계획 세부사항 삽입

Listing 11. 카디널리티 추정이 더 정확한 쿼리 접근 계획

예제 3: C1 IN ( <VALUE LIST> ) AND C2 IN ( <VALUE LIST> ) AND C3=literal

Listing 12. 500달러의 보너스를 찾도록 세 번째 술어 추가

Listing 13. EMPLOYEE 테이블에서 반환된 레코드

Listing 14. 쿼리 접근 계획

Listing 15. 인덱스 작성과 통계 수집

Listing 16. 쿼리 접근 계획에서 수정된 카디널리티 추정

예제 4: (C1=literal OR C1=literal2) AND (C2=literal OR C2=literal2) AND C3=literal

Listing 17. IN 술어를 대체하기 위한 해당 OR 술어

Listing 18. 쿼리 접근 계획

Listing 19. 해당 IN 술어로 변환된 OR 술어

예제 5: 인덱스 오링(Index oring)

Listing 20. EMPLOYEE 테이블에서 A00 부서에 속한 모든 직원과 영업 사원을 검색하는 쿼리

Listing 21. 쿼리에서 네 개의 레코드 반환

Listing 22. XML 파일 내용

Listing 23. example5.xml과 example5.del에 함께 사용하는 명령

Listing 24. 최적화 프로필을 사용하여 쿼리 접근 계획 보기

Listing 25. 쿼리 접근 계획

Listing 26. 쿼리 접근 계획의 향상된 카디널리티 추정

OR 연산자의 하위 용어(subterm) 내에 있는 여러 로컬 동등 술어의 통계적 상관 관계

예제 6: (C1=LITERAL1 AND C2=LITERAL2) OR (C1=LITERAL3 AND C2=LITERAL4)

Listing 27. EMPLOYEE 테이블에 대한 쿼리

Listing 28. EMPLOYEE 테이블로부터의 쿼리 결과

Listing 29. 옵티마이저가 선택한 것과 비슷한 쿼리 접근 계획

Listing 30. 카디널리티 추정이 더 정확한 쿼리 접근 계획
 

 




결론
 옵티마이저가 고려된 각 쿼리 접근 계획의 비용을 올바로 추정하는 것은 정확한 카디널리티 추정에 달려 있다. DB2 9.5에서 다중 컬럼 통계의 확장된 사용을 활용하여 옵티마이저가 최적의 쿼리 접근 계획을 선택하기 위해 카디널리티를 더 잘 추정하도록 많은 정보를 제공할 수 있다.







 기사 원문으로 가시면 에제 코드와 자세한 설명을 볼 수 있습니다
아이베엠 디벨로퍼 웍스 : http://www.ibm.com/developerworks/kr/
기사 원문 주소 : http://www.ibm.com/developerworks/kr/library/dm-0809kapoor/index.html

반응형