SSAS - 집계 최적화

jevida(강성욱) 2013.11.12 14:17 Views : 7414

집계 최적화

 

안녕하세요 강성욱 입니다.(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 이상으로 크게 설정해서 가능한 많이 반영하도록 유도 합니다.

 


강성욱 / jevida@naver.com
Microsoft SQL Server MVP
Blog : http://sqlmvp.kr
Facebook : http://facebook.com/sqlmvp



No. Subject Author Date Views
Notice 2023년 1월 - SQLER의 업데이트 강좌 리스트 코난(김대우) 2023.01.02 477
1606 extended events 용 excel view 공개 버전 minsouk 2014.04.07 6418
1605 [TIP] 한 라인에서 여러 테이블 삭제 하기. [3] 엘리엘1 2014.01.03 8636
1604 GhostRecord(인덱스에서 행 삭제시발생) jevida(강성욱) 2013.11.25 13575
1603 프로시저, 함수, 트리거 생성 정보 보기. jevida(강성욱) 2013.11.25 10643
1602 힙테이블에서 행을 삭제하면어떻게 처리 될까? [1] jevida(강성욱) 2013.11.25 9391
1601 SSMS의 디자이너에서 테이블 수정 시 발생하는 영향 [1] jevida(강성욱) 2013.11.25 10538
1600 SQL Server를 활용한 Perfmon 로그 저장 [1] jevida(강성욱) 2013.11.21 14764
1599 VLF 환경과 성능 jevida(강성욱) 2013.11.21 10084
1598 Block 모니터링 jevida(강성욱) 2013.11.21 8084
1597 추적파일을 테이블로 로드하기. jevida(강성욱) 2013.11.21 8906
1596 LOGON 트리거 jevida(강성욱) 2013.11.18 6574
1595 DeadLock(교착상태) 모니터 하기 [2] jevida(강성욱) 2013.11.18 11390
1594 Tempdb 경합(동시성 강화) jevida(강성욱) 2013.11.18 7574
1593 SSAS Backup 자동화 하기 jevida(강성욱) 2013.11.18 8182
1592 SSAS - MDX 스크립트 jevida(강성욱) 2013.11.18 7273
1591 SSAS - MDX 쿼리 jevida(강성욱) 2013.11.18 8153
1590 SSAS - MDX 활용 jevida(강성욱) 2013.11.12 7193
» SSAS - 집계 최적화 jevida(강성욱) 2013.11.12 7414
1588 SSAS - 사용자 계층 설계 jevida(강성욱) 2013.11.12 6615
1587 SSAS - 집계 설계 이해 - (3)집계 마법사에 특성 추가 jevida(강성욱) 2013.11.06 6975





XE Login