반응형

집계 최적화

 

안녕하세요 강성욱 입니다.(www.sqltag.org, www.sqler.com, http://sqlmvp.kr)

이번 시간에는 [집계 최적화]에 대해서 알아 보도록 하겠습니다.

 

집계 디자인 마법사는 큐브의 각 부분에 대한 조회가 균일하다는 전제하게 유용합니다. 개발 내지는 운영 초기 단계에서는 사용자의 큐브에 대한 쿼리 패턴을 알지 못하기 때문에 이러한 접근이 유용 합니다. 물론 필요시 특성들의 AggregationUsage 속성 설정과 특성들의 특성관계, 사용자 계층 구성 등을 통해 최적화를 도모할 수 있습니다.

하지만 실제 사용자 쿼리에 최적화 되지 않은 설계일 수 있기 때문에 사용자가 운영하는 환경에서 큐브에 대한 사용자가 실제로 요청한 쿼리와 빈도 등을 집계 설계에 반영하는 것이 필요 합니다.

 

[쿼리 로그 설정]

사용자의 쿼리 로그를 관계형 데이터베이스나 파일에 저장할 수 있습니다. 로그는 기본적으로 10번째마다 요청되는 쿼리를 기록 합니다. 이 때 쿼리는 실제 쿼리문을 기록하는 것이 아니라 큐브 내의 어떤 파티션을 조회하는지 기록합니다. 사용자의 쿼리 패턴을 파악하려면 로그 빈도수를 한시적으로 늘려 줄 필요가 있습니다. 로그 빈도 수 변경은 SSMS에서 QueryLogSampling 서버 속성을 변경하면 됩니다.

 

SSMS를 실행하여 test1이라는 데이터베이스를 생성 합니다.

 

 

SSMS에서 Analysis Services를 접속 합니다.

 

 

Analysis Services에서 마우스 오른쪽을 클릭하여 [속성]을 선택 합니다.

 

 

[분석 서버 속성] 창이 나타나면 다음과 같이 설정 합니다.

  • LogQueryLog\CreateLogTable 값을 Ture로 설정
  • Log\QueryLog\QueryLogConnectionString의 값 셀을 클릭합니다.

 

Log\QueryLog\QueryLogConnectionString을 클릭하여 [연결 관리자] 속성 창이 나타나면 서버이름은 (Local)로 설정하고 데이터베이스는 앞에서 생성한 [test1]을 선택합니다.

 

 

[분서 서버 속성]에서 Log\QueryLog\QuerySampling의 값을 1로 설정 합니다.

쿼리 로그의 테이블이름은 Log\QueryLog\QueryLogTableName에서 확인 합니다. 기본값 이름은 OlapQueryLog 입니다.

 

 

[사용 빈도 기반 최적화 마법사]

사용자의 쿼리 로그 기반으로 마법사를 사용해 집계 설계를 최적화 할 수 있습니다.

 

SSMS에서 [Analysis Services] – [데이터베이스] – [큐브] – [Adventure Works]에서 마우스 오른쪽을 클릭하여 [찾아보기]를 선택 합니다.

 

 

임의로 차원과 측정값들을 그리드 위로 끌어다 놓고 [드릴다운]이나 피벗을 합니다. 큐브를 여러 번 조회 합니다. 이러한 과정을 통하여 쿼리 로그가 기록 됩니다.

(test1 데이터베이스에 OlapQueryLog 테이블이 생성되지 않는다면 조금전 실행한 큐브 조회화면에서 [처리]를 클릭 합니다.)

 

 

[솔루션 탐색기]에서 [Adventure Works.cube]를 더블클릭 또는 [디자이너 보기]를 선택 합니다. [집계]탭에서 [사용 빈도 기반 최적화] 버튼을 클릭 합니다.

 

 

[수정할 파티션 선택]에서 파티션을 선택 합니다.

 

[쿼리 조건 지정]탭에서는 최적화할 쿼리의 필터 옵션을 설정 할 수 있습니다.

 

 

[최적화될 쿼리 확인]에서 최적화할 쿼리를 선택 합니다.

 

이후 단계는 [집계 디자인 마법사]와 동일 합니다. 취소를 클릭하여 작업을 마칩니다.

 

[집계 디자인 마법사]는 매우 많은 수의 후보자중에 일부를 선정하는 작업으로 성능 향상 정도를 20-30정도로 많이 설정하지만 사용 빈도 기반 최적화는 실제로 사용자의 큐브 접근 로그를 기반으로 소수의 집계 후보들만 추출해서 작업하므로 90 이상으로 크게 설정해서 가능한 많이 반영하도록 유도 합니다.

 

 

http://SQLMVP.KR

반응형

+ Recent posts