2013-08-20 3 views
2

나는이 머리카락을 찢어서 바쁘다. 저는 사실 1 개와 9 차원 주위에 큐브를 가지고 있습니다. 사실 테이블에는 약 120,000 개의 행만 있으므로 어떤 방식 으로든 큰 DB가 아닙니다.SSAS 큐브 디자인 - MDX 매우 느리다

문제는보고 소프트웨어로 (Microstrategy) MDX가 모든 데이터를 가져 와서 보고서를 조작 할 때 MDX를 생성하는 대신 데이터 소스로 사용한다는 것입니다. 어느 쪽이든, 몇 가지 필드를 추가하면 쿼리를 빠르게 사용할 수 없으며 실제로 메모리가 부족합니다. 내 큐브 디자인과 관련이 있다고 생각합니다.

하나의 경우, 동일한 차원에 있어도 모든 속성에 대해 상호 조인을 수행합니다. 마치 두 속성 사이에 관계가 있음을 인식하지 못하는 것처럼 말입니다.

저는 BIDS에서 속성 관계를 가지고 놀았지만 (가능하면 관계를 엄격하게 만들었지 만) 별 차이가없는 것 같습니다.

생성 된 MDX는 다음과 같습니다. 나는 MDX를 커스터마이징 할 수있는 옵션이 없지만 관계가 정확히 무엇인지 정확하게 말하지는 않을 것이라고 확신한다.

나는 Microstrategy 지원 사이트에서 너무 많은 기쁨없이 게시를 시도했습니다.

모든 도움을 주시면 대단히 감사하겠습니다.

감사

WITH SET AS '{[Dim Date].[Date].[Date].AllMembers}' 
... 
(all my dimensions appear here) 
... 
select {[Measures].[Total Purchases], [Measures].[New Cards Issued], [Measures].[New  Applications Received], [Measures].[New Applications Declined], [Measures].[New  Applications Approved], [Measures].[New Accounts Activated]} on columns, 
non empty CROSSJOIN(CROSSJOIN(CROSSJOIN(CROSSJOIN(CROSSJOIN(CROSSJOIN(CROSSJOIN(CROSSJOIN(CROSSJOIN(C ROSSJOIN(CROSSJOIN(CROSSJOIN(CROSSJOIN(CROSSJOIN(CROSSJOIN(CROSSJOIN(CROSSJOIN([dim0_select_members], [dim1_select_members]), [dim2_select_members]), [dim3_select_members]), [dim4_select_members]), [dim5_select_members]), [dim6_select_members]), [dim7_select_members]), [dim8_select_members]), [dim9_select_members]), [dim10_select_members]), [dim11_select_members]), [dim12_select_members]), [dim13_select_members]), [dim14_select_members]), [dim15_select_members]), [dim16_select_members]), [dim17_select_members]) on rows 
from [Cards_Transactions] 
+0

Microstrategy가 발행하는 쿼리에는 사용자가 발행 한 쿼리와 관계없이 큐브의 모든 측정 값과 모든 특성이 포함되어 있습니까? BTW : Analysis Services는 한 차원 내에서'autoexists'를 사용합니다. 즉, 한 차원 내에서 '교차 제품'은 조합이 존재하는 행만 제공합니다. 그것은 당신이 정의한 관계와 무관합니다. – FrankPl

+0

특성에 부모 - 자식 관계가 있습니까? 과거 큰 문제없이 MicroStrategy의 SSAS 큐브를 사용했습니다. – TheMacroGuru

답변

2

당신이 당신의 필요에 정교한 수 있다면 그것은 좋은 것입니다.

최종 사용자 또는 개발자에게 적합합니까? 사용자가 mdx 큐브에서 셀프 서비스를 수행 할 수 있도록 하시겠습니까? 쿼리하는 데이터가 실시간으로 업데이트되어야합니까 (지금 업데이트) 아니면 이전 시간 \ 일까지 업데이트 할 수 있습니까?

MSTR에서 MDX 원본에 연결하는 두 가지 방법이 있습니다.

편도 - 가져 오기 데이터 인터페이스를 통한 직접 연결.

이렇게하면 - mstr은 선택 사항에 따라 mdx 쿼리를 생성합니다. 그래서 시각적 통찰력에서 일부 속성을 화면으로 끌어 오기 전에 일부 필터를 사용하는 것이 중요합니다.

두 번째 옵션은 connect MSTR to the MDX cube at the schema level입니다. 큐브 정의를 읽고 큐브에있는 특성 및 메트릭을 만듭니다. 보안 필터를 적용하기 위해 MDX 특성을 프로젝트 특성에 매핑 할 수도 있습니다. 이렇게하면 정기적 인 보고서를 만들 수 있습니다 (프롬프트 및 필터도 사용할 수 있습니다 ...). 그리고 mdx 큐브에서 i- 큐브를 만들 수 있습니다.

귀하의 요구에 더 적합한 두 번째 옵션을 찾을 수 있습니다.

MDX 큐브가 매우 작기 때문에 i-cube + 증분 새로 고침 보고서를 만들어 업데이트하는 것이 좋습니다 (예 : 오늘 데이터로 5 분마다 업데이트).