Forum Discussion

Anonymous's avatar
Anonymous
Not applicable
6 years ago
Solved

Slow DAX measure

Hi Experts

I have the following measure which works out the p value and tau value for each row in my fact table which has 250000 row in it..

Both the p value and tau value are measures themselves is there any way I could speed up my run time which is current 2 minutes PBI Services and 42 sec desktop.

Downward =CALCULATE ( COUNTA ( 'PMS_COMPLAINT'[MATERIAL_ID] ),FILTER (ALLSELECTED ('PMS_FINANCIAL_PDS'[ROLL12_COMPLETE_PDS_IND] ), MAX('_Measures'[p-value])<=0.05 && 'PMS_FINANCIAL_PDS'[TAU 1] < 0)) +0
  • sturlaws's avatar
    sturlaws
    6 years ago

    your code could look something like this

    Downward =
    CALCULATE (
        COUNTA ( 'PMS_COMPLAINT'[MATERIAL_ID] ),
        FILTER ( ALL ( 'PMS_FINANCIAL_PDS' ), MAX ( [p-value] ) <= 0.05 && [TAU 1] < 0 )
    ) + 0

     

    But, are '_Measures'[p-value] a variable in this measure? It is not part of the code you posted.

4 Replies

  • sturlaws's avatar
    sturlaws
    Resident Rockstar

    Hi, Anonymous ,

     

    Just had a look at your measure.

    Are '_Measures[p-value] and 'PMS_FINANCIAL_PDS'[TAU 1] measures? It is considered best practise to reference measures without prefixing with table-names, it makes it easier to read and understand code.

     

    Are you sure the ALLSELECTED-function is necessary? It is a tricky function: The definitive guide to ALLSELECTED

    What do you want to achieve with ALLSELECT? Could it be replaced with ALL or ALLEXCEPT?

     

    Cheers,
    Sturla

     

     

    • Anonymous's avatar
      Anonymous
      Not applicable
      Hi Sturla
      Are '_Measures[p-value] and 'PMS_FINANCIAL_PDS'[TAU 1] measures? YES
      NOT SURE ON second part of question I'll try..

      Also you mention It is considered best practise to reference measures without prefixing with table-names, it makes it easier to read and understand code. Do you have an example..what declare this as a variable
      • sturlaws's avatar
        sturlaws
        Resident Rockstar

        your code could look something like this

        Downward =
        CALCULATE (
            COUNTA ( 'PMS_COMPLAINT'[MATERIAL_ID] ),
            FILTER ( ALL ( 'PMS_FINANCIAL_PDS' ), MAX ( [p-value] ) <= 0.05 && [TAU 1] < 0 )
        ) + 0

         

        But, are '_Measures'[p-value] a variable in this measure? It is not part of the code you posted.