Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Enhance your career with this limited time 50% discount on Fabric and Power BI exams. Ends August 31st. Request your voucher.

Reply
ChristianDLS56
Frequent Visitor

Optimizing a Matrix

Hi everyone!

I want to optimize how my matrix table runs. The matrix has 36 columns (from 36 measures, of course) which consist of CROSSFILTER and SUM functions. I think the measures are optimized already - it's just that when I change filter, it takes a while to load (it takes 20 seconds - what I need is 5 seconds)

 

Appreciate any help 🙂

 

1 REPLY 1
ChristianDLS56
Frequent Visitor

Here's the DAX query I exported from the performance analysis.

// DAX Query

DEFINE

                  VAR __DS0FilterTable =

                                    TREATAS({"2122 ACTUALS"}, 'Filter Table - Fiscal Year'[FY Data Type])

 

                  VAR __DS0FilterTable2 =

                                    TREATAS({"$/SU"}, 'Filter Table - Amount'[Amount Type])

 

                  VAR __DS0FilterTable3 =

                                    TREATAS({"USD"}, 'Filter Table - Currency'[Currency])

 

                  VAR __DS0FilterTable4 =

                                    FILTER(

                                                      KEEPFILTERS(VALUES('Filter Table - Customer'[Customer Type])),

                                                      'Filter Table - Customer'[Customer Type] <> "OTHERS"

                                    )

 

                  VAR __ValueFilterDM6 =

                                    FILTER(

                                                      KEEPFILTERS(

                                                                        SUMMARIZECOLUMNS(

                                                                                          'Data Table - Channel Profitability/CTS'[Local Trade Channel (PBI)],

                                                                                          'Data Table - Channel Profitability/CTS'[Local SubTrade Channel (PBI)],

                                                                                          'Data Table - Channel Profitability/CTS'[Customer Group (PBI)],

                                                                                          'Data Table - Channel Profitability/CTS'[Customer Name (PBI)],

                                                                                          'Data Table - Channel Profitability/CTS'[Category (PBI)],

                                                                                          __DS0FilterTable,

                                                                                          __DS0FilterTable2,

                                                                                          __DS0FilterTable3,

                                                                                          __DS0FilterTable4,

                                                                                          "VOL_MMSU_2_0", '2.0 measures'[VOL MMSU 2.0],

                                                                                          "GIV_MM_TABLE_2_0", '2.0 switch'[GIV MM TABLE 2.0],

                                                                                          "NOR_MM_TABLE_2_0", '2.0 switch'[NOR MM TABLE 2.0],

                                                                                          "SD_LOCAL_MM_TABLE_2_0", '2.0 switch'[SD LOCAL MM TABLE 2.0],

                                                                                          "SD_CORPORATE_MM_TABLE_2_0", '2.0 switch'[SD CORPORATE MM TABLE 2.0],

                                                                                          "SD_OTHERS_MM_TABLE_2_0", '2.0 switch'[SD OTHERS MM TABLE 2.0],

                                                                                          "SD_TOTAL_MM_TABLE_2_0", '2.0 switch'[SD TOTAL MM TABLE 2.0],

                                                                                          "ODS_PAYMENT_TERMS_MM_TABLE_2_0", '2.0 switch'[ODS PAYMENT TERMS MM TABLE 2.0],

                                                                                          "ODS_SUPPLY_TERMS_MM_TABLE_2_0", '2.0 switch'[ODS SUPPLY TERMS MM TABLE 2.0],

                                                                                          "ODS_DISTRIBUTOR_DISCOUNT_MM_TABLE_2_0", '2.0 switch'[ODS DISTRIBUTOR DISCOUNT MM TABLE 2.0],

                                                                                          "LOGISTICS_ALLOWANCE_MM_TABLE_2_0", '2.0 switch'[LOGISTICS ALLOWANCE MM TABLE 2.0],

                                                                                          "ODS_ADJ_MM_TABLE_2_0", '2.0 switch'[ODS ADJ MM TABLE 2.0],

                                                                                          "ODS_OTHERS_MM_TABLE_2_0", '2.0 switch'[ODS OTHERS MM TABLE 2.0],

                                                                                          "ODS_ALL_MM_TABLE_2_0", '2.0 switch'[ODS ALL MM TABLE 2.0],

                                                                                          "NOS_MM_TABLE_2_0", '2.0 switch'[NOS MM TABLE 2.0],

                                                                                          "LOCAL_T_W_MM_TABLE_2_0", '2.0 switch'[LOCAL T&W MM TABLE 2.0],

                                                                                          "TDC_EX_LOCAL_T_W_MM_TABLE_2_0", '2.0 switch'[TDC EX LOCAL T&W MM TABLE 2.0],

                                                                                          "TDC_ADJ_MM_TABLE_2_0", '2.0 switch'[TDC ADJ MM TABLE 2.0],

                                                                                          "TDC_TOTAL_MM_TABLE_2_0", '2.0 switch'[TDC TOTAL MM TABLE 2.0],

                                                                                          "GC_MM_TABLE_2_0", '2.0 switch'[GC MM TABLE 2.0],

                                                                                          "L_MSE_IN_STORE_MM_TABLE_2_0", '2.0 switch'[L-MSE IN-STORE MM TABLE 2.0],

                                                                                          "L_MSE_MEDIA_MM_TABLE_2_0", '2.0 switch'[L-MSE MEDIA MM TABLE 2.0],

                                                                                          "L_MSE_DIMI_MM_TABLE_2_0", '2.0 switch'[L-MSE DIMI MM TABLE 2.0],

                                                                                          "L_MSE_MM_TABLE_2_0", '2.0 switch'[L-MSE MM TABLE 2.0],

                                                                                          "C_MSE_IN_STORE_MM_TABLE_2_0", '2.0 switch'[C-MSE IN-STORE MM TABLE 2.0],

                                                                                          "C_MSE_MEDIA_MM_TABLE_2_0", '2.0 switch'[C-MSE MEDIA MM TABLE 2.0],

                                                                                          "C_MSE_DIMI_MM_TABLE_2_0", '2.0 switch'[C-MSE DIMI MM TABLE 2.0],

                                                                                          "C_MSE_MM_TABLE_2_0", '2.0 switch'[C-MSE MM TABLE 2.0],

                                                                                          "MSE_TOTAL_MM_TABLE_2_0", '2.0 switch'[MSE TOTAL MM TABLE 2.0],

                                                                                          "DIRECT_SALES_SRA_MM_TABLE_2_0", '2.0 switch'[DIRECT SALES SRA MM TABLE 2.0],

                                                                                          "SRA_OTHERS_MM_TABLE_2_0", '2.0 switch'[SRA OTHERS MM TABLE 2.0],

                                                                                          "SRA_TOTAL_MM_TABLE_2_0", '2.0 switch'[SRA TOTAL MM TABLE 2.0],

                                                                                          "OIX_MM_TABLE_2_0", '2.0 switch'[OIX MM TABLE 2.0],

                                                                                          "BT_MM_TABLE_2_0", '2.0 switch'[BT MM TABLE 2.0],

                                                                                          "GIV_SALIENCE_2_0", '2.0 switch'[GIV SALIENCE 2.0],

                                                                                          "DIFF_VS_AVG_COUNTRY_CHANNEL_PROFITABILITY", '2.0 switch'[DIFF VS AVG COUNTRY CHANNEL PROFITABILITY]

                                                                        )

                                                      ),

                                                      OR(NOT(ISBLANK([NOS_MM_TABLE_2_0])), [NOS_MM_TABLE_2_0] <> 0)

                                    )

 

                  VAR __DS0Core =

                                    SUMMARIZECOLUMNS(

                                                      ROLLUPADDISSUBTOTAL(

                                                                        'Data Table - Channel Profitability/CTS'[Local Trade Channel (PBI)], "IsGrandTotalRowTotal"

                                                      ),

                                                      __DS0FilterTable,

                                                      __DS0FilterTable2,

                                                      __DS0FilterTable3,

                                                      __DS0FilterTable4,

                                                      __ValueFilterDM6,

                                                      "GIV_SALIENCE_2_0", '2.0 switch'[GIV SALIENCE 2.0],

                                                      "VOL_MMSU_2_0", '2.0 measures'[VOL MMSU 2.0],

                                                      "GIV_MM_TABLE_2_0", '2.0 switch'[GIV MM TABLE 2.0],

                                                      "NOR_MM_TABLE_2_0", '2.0 switch'[NOR MM TABLE 2.0],

                                                      "SD_LOCAL_MM_TABLE_2_0", '2.0 switch'[SD LOCAL MM TABLE 2.0],

                                                      "SD_CORPORATE_MM_TABLE_2_0", '2.0 switch'[SD CORPORATE MM TABLE 2.0],

                                                      "SD_OTHERS_MM_TABLE_2_0", '2.0 switch'[SD OTHERS MM TABLE 2.0],

                                                      "SD_TOTAL_MM_TABLE_2_0", '2.0 switch'[SD TOTAL MM TABLE 2.0],

                                                      "ODS_PAYMENT_TERMS_MM_TABLE_2_0", '2.0 switch'[ODS PAYMENT TERMS MM TABLE 2.0],

                                                      "ODS_SUPPLY_TERMS_MM_TABLE_2_0", '2.0 switch'[ODS SUPPLY TERMS MM TABLE 2.0],

                                                      "ODS_DISTRIBUTOR_DISCOUNT_MM_TABLE_2_0", '2.0 switch'[ODS DISTRIBUTOR DISCOUNT MM TABLE 2.0],

                                                      "LOGISTICS_ALLOWANCE_MM_TABLE_2_0", '2.0 switch'[LOGISTICS ALLOWANCE MM TABLE 2.0],

                                                      "ODS_ADJ_MM_TABLE_2_0", '2.0 switch'[ODS ADJ MM TABLE 2.0],

                                                      "ODS_OTHERS_MM_TABLE_2_0", '2.0 switch'[ODS OTHERS MM TABLE 2.0],

                                                      "ODS_ALL_MM_TABLE_2_0", '2.0 switch'[ODS ALL MM TABLE 2.0],

                                                      "NOS_MM_TABLE_2_0", '2.0 switch'[NOS MM TABLE 2.0],

                                                      "LOCAL_T_W_MM_TABLE_2_0", '2.0 switch'[LOCAL T&W MM TABLE 2.0],

                                                      "TDC_EX_LOCAL_T_W_MM_TABLE_2_0", '2.0 switch'[TDC EX LOCAL T&W MM TABLE 2.0],

                                                      "TDC_ADJ_MM_TABLE_2_0", '2.0 switch'[TDC ADJ MM TABLE 2.0],

                                                      "TDC_TOTAL_MM_TABLE_2_0", '2.0 switch'[TDC TOTAL MM TABLE 2.0],

                                                      "GC_MM_TABLE_2_0", '2.0 switch'[GC MM TABLE 2.0],

                                                      "L_MSE_IN_STORE_MM_TABLE_2_0", '2.0 switch'[L-MSE IN-STORE MM TABLE 2.0],

                                                      "L_MSE_MEDIA_MM_TABLE_2_0", '2.0 switch'[L-MSE MEDIA MM TABLE 2.0],

                                                      "L_MSE_DIMI_MM_TABLE_2_0", '2.0 switch'[L-MSE DIMI MM TABLE 2.0],

                                                      "L_MSE_MM_TABLE_2_0", '2.0 switch'[L-MSE MM TABLE 2.0],

                                                      "C_MSE_IN_STORE_MM_TABLE_2_0", '2.0 switch'[C-MSE IN-STORE MM TABLE 2.0],

                                                      "C_MSE_MEDIA_MM_TABLE_2_0", '2.0 switch'[C-MSE MEDIA MM TABLE 2.0],

                                                      "C_MSE_DIMI_MM_TABLE_2_0", '2.0 switch'[C-MSE DIMI MM TABLE 2.0],

                                                      "C_MSE_MM_TABLE_2_0", '2.0 switch'[C-MSE MM TABLE 2.0],

                                                      "MSE_TOTAL_MM_TABLE_2_0", '2.0 switch'[MSE TOTAL MM TABLE 2.0],

                                                      "DIRECT_SALES_SRA_MM_TABLE_2_0", '2.0 switch'[DIRECT SALES SRA MM TABLE 2.0],

                                                      "SRA_OTHERS_MM_TABLE_2_0", '2.0 switch'[SRA OTHERS MM TABLE 2.0],

                                                      "SRA_TOTAL_MM_TABLE_2_0", '2.0 switch'[SRA TOTAL MM TABLE 2.0],

                                                      "OIX_MM_TABLE_2_0", '2.0 switch'[OIX MM TABLE 2.0],

                                                      "BT_MM_TABLE_2_0", '2.0 switch'[BT MM TABLE 2.0],

                                                      "DIFF_VS_AVG_COUNTRY_CHANNEL_PROFITABILITY", '2.0 switch'[DIFF VS AVG COUNTRY CHANNEL PROFITABILITY]

                                    )

 

                  VAR __DS0PrimaryWindowed =

                                    TOPN(

                                                      502,

                                                      __DS0Core,

                                                      [IsGrandTotalRowTotal],

                                                      0,

                                                      [GIV_SALIENCE_2_0],

                                                      0,

                                                      'Data Table - Channel Profitability/CTS'[Local Trade Channel (PBI)],

                                                      1

                                    )

 

                  VAR __DS0CoreNoInstanceFiltersNoTotals =

                                    FILTER(KEEPFILTERS(__DS0Core), [IsGrandTotalRowTotal] = FALSE)

 

EVALUATE

                  GROUPBY(

                                    __DS0CoreNoInstanceFiltersNoTotals,

                                    "MinGIV_SALIENCE_2_0", MINX(CURRENTGROUP(), [GIV_SALIENCE_2_0]),

                                    "MaxGIV_SALIENCE_2_0", MAXX(CURRENTGROUP(), [GIV_SALIENCE_2_0])

                  )

 

EVALUATE

                  __DS0PrimaryWindowed

 

ORDER BY

                  [IsGrandTotalRowTotal] DESC,

                  [GIV_SALIENCE_2_0] DESC,

                  'Data Table - Channel Profitability/CTS'[Local Trade Channel (PBI)]

Helpful resources

Announcements
July 2025 community update carousel

Fabric Community Update - July 2025

Find out what's new and trending in the Fabric community.

July PBI25 Carousel

Power BI Monthly Update - July 2025

Check out the July 2025 Power BI update to learn about new features.

Join our Fabric User Panel

Join our Fabric User Panel

This is your chance to engage directly with the engineering team behind Fabric and Power BI. Share your experiences and shape the future.