0
ActivePivot과 함께 사용하는 다음 형식의 MDX 쿼리가 있습니다.MDX 쿼리에서 필터와 Instr을 사용할 때의 성능
SELECT
NON EMPTY Hierarchize({[CODE].[CODE].Members}) ON ROWS,
NON EMPTY Hierarchize({Filter([RELEVANCE].Members, InStr([RELEVANCE].CurrentMember.Name, "n/a") > 0)}) ON COLUMNS
FROM [CUBE]
WHERE ([Measures].[contributors.COUNT])
이 쿼리의 성능은 필터/INSTR 매우 가난 : 나는 (열) 다른 차원에서 문자열의 부분의 존재에 의해, (내 행에에) 결과를 필터링해야 . 나는 그것이 모든 구성원을 통해 '스캔'한 것으로 이해할 수 있다고 생각합니다.
더 나은 성능을 제공하면서 내가 원하는 것을 얻을 수있는 또 다른 방법이 있습니까?
감사
"n/a"가 한 수준에만 나타 납니까? 계층 구조 트리의 샘플을 제공 할 수 있습니까? – Benoit
예, 한 수준이므로이 열에 대해 계층화 함수가 필요하지 않습니다. 맞습니까? 행 선택은 계층 적이어야 할 수도 있습니다. – doc
ActivePivot의 경우, 동료가 이름 대신 멤버를 버리기 위해 INSTR보다 훨씬 나은 성능을 발휘하는 대체 솔루션을 제안했습니다. RELEVANCE의 잎 수준에서 ActivePivot에 Post Processsor를 만들었습니다. RELEVANCE는 String이 일치하지 않으면 null을 반환합니다. 컨텍스트 값을 사용하여 String을 설정했습니다. – doc