2016-07-19 83 views
0

要顯示結果集,需要2分鐘。有沒有什麼辦法來優化查詢?MDX:查詢優化

WITH MEMBER [Measures].[TestMeasure] AS 
    ( 
    [Measures].[EnrollPatientCnt] 
    + [Measures].[AssessmentPatientCnt] 
    + [Measures].[ProgramAssessmentPatientCnt] 
) 
MEMBER [Measures].[TotalCount] AS 
    Count( 
    NonEmpty(
    ( 
     { [DimAssessment].[AssessmentText].[AssessmentText] }, 
     { [DimAssessment].[QuestionText].[QuestionText] }, 
     { [DimAssessment].[AnswerText].[AnswerText] } 
    ) 
    ,{ 
     [Measures].[AssessmentPatientCnt] 
    , [Measures].[TestMeasure] 
    } 
)) 
SELECT 
    NON EMPTY [Measures].[TotalCount] ON COLUMNS 
FROM [NavigateCube] 
WHERE 
    (
    { 
     ( 
     { 
     [DimManagedPopulation].[ManagedPopulationName].&[1034]&[TC Tammy Brown Care Team] 
     } 
    ) 
    } 
); 

回答

0

此查詢如何執行?

WITH MEMBER [Measures].[TestMeasure] AS 
    IIf(
    Not(IsEmpty([Measures].[EnrollPatientCnt])) 
    or Not(IsEmpty([Measures].[AssessmentPatientCnt])) 
    or Not(IsEmpty([Measures].[ProgramAssessmentPatientCnt])) 
    ,1 
    ,Null 
) 
MEMBER [Measures].[TotalCount] AS 
    Sum (
    ({ [DimAssessment].[AssessmentText].[AssessmentText] }, 
    { [DimAssessment].[QuestionText].[QuestionText] }, 
    { [DimAssessment].[AnswerText].[AnswerText] }), 
    [Measures].[TestMeasure] 
) 
SELECT NON EMPTY [Measures].[TotalCount] ON COLUMNS 
FROM [NavigateCube] 
WHERE (
{ 
    ({ [DimManagedPopulation].[ManagedPopulationName].&[1034]&[TC Tammy Brown Care Team] }) 
}) 

這是不相同的,但它是一個類似的概念是什麼沒啥博客上講述here

+0

格雷格 - 'mdx'標籤已經提出了文檔 - 可以添加您的投票,請爲我們需要幾個票來創建此標籤的文檔: stackoverflow.com/documentation/mdx – SouravA

+0

@greg - 毫不奇怪,因爲MS可能對連續的點擊率感到惱火!,您所包含的鏈接不再有效 – whytheq

+0

@whytheq感謝您的支持。固定。摩莎現在不在微軟了。 – GregGalloway

0

基本上相同的方法,格雷格/磨沙:

WITH 
MEMBER [Measures].[TestMeasure] AS 
    [Measures].[EnrollPatientCnt] 
    + [Measures].[AssessmentPatientCnt] 
    + [Measures].[ProgramAssessmentPatientCnt] 
MEMBER [Measures].[MeasureIsEmpty] AS 
    IIF(
     NOT ISEMPTY([Measures].[TestMeasure]) 
    OR NOT ISEMPTY([Measures].[AssessmentPatientCnt]) 
    ,1 
    ,NULL 
) 
MEMBER [Measures].[TotalCount] AS 
    SUM(
    [DimAssessment].[AssessmentText].[AssessmentText] 
    *[DimAssessment].[QuestionText].[QuestionText] 
    *[DimAssessment].[AnswerText].[AnswerText] 
    ,[Measures].[MeasureIsEmpty] 
) 
SELECT 
    NON EMPTY [Measures].[TotalCount] ON 0 
FROM [NavigateCube] 
WHERE [DimManagedPopulation].[ManagedPopulationName].&[1034]&[TC Tammy Brown Care Team]; 
+0

嗨@whytheq,上面的查詢對我很有幫助。謝謝你 – Deepthi

+0

很高興這是某種幫助 – whytheq