Supplies are limited. Contact info@espc.tech right away to save your spot before the conference sells out.
Get your discountScore big with last-minute savings on the final tickets to FabCon Vienna. Secure your discount
Hi,
I have a larger data model that I boiled down to the basics (pbix file size is 11.7MB) and I'm still getting performance issues in a matrix visual that I don't understand. The matrix visual started out with 12 measures but also that one I reduced to only 1 now to get to the bottom of the problem.
I'm also attaching a picture of my scaled-down data model. I have a date table, and three dimension tables (Customer, Location (think stores of each customer), and Unit (think departments of each store) which are linked to each other and to my fact table called Day_summaries, which holds daily averages of a particular sensor data. My fact table is linked by a Date field to the Date table and by Unit_ID (Day_summaries.UNIT_ID = Unit.UNIT_ID) to the other dimension tables.
And here is the DAX for the measure in the table:
Originally I had problems both with the visual loading very slowly (20seconds +) or not loading at all because it ran out of memory, especially once published to the PBI service. But for now I'd like to focus on the two questions below.
1) What could be the reason that the visual blows out of memory when I add both UNIT_ID from my fact table and UNIT_ID from my Unit table?
Only from fact table - Works ok
From fact and dim table - Not ok
2) In case you think the answer to 1) is "because it's the KEY between the two tables", why would the performance be so slow (62 seconds loading time, 8GB of RAM usage, about 50 rows in total, ) when I use other fields from the related Dimension tables?
I also include diagnostics from Vertipaq Analyzer.
DAX query of the table:
// DAX Query
DEFINE
VAR __DS0FilterTable =
FILTER(
KEEPFILTERS(VALUES('Day_summaries'[DATE])),
AND(
'Day_summaries'[DATE] >= DATE(2023, 6, 26),
'Day_summaries'[DATE] < DATE(2023, 7, 6)
)
)
VAR __DS0FilterTable2 =
FILTER(
KEEPFILTERS(VALUES('Date table'[Date])),
AND('Date table'[Date] >= DATE(2022, 4, 6), 'Date table'[Date] < DATE(2023, 7, 6))
)
VAR __DS0Core =
SUMMARIZECOLUMNS(
ROLLUPADDISSUBTOTAL(
ROLLUPGROUP('Day_summaries'[UNIT_ID], 'Location'[LOCATION NAME]), "IsGrandTotalRowTotal"
),
__DS0FilterTable,
__DS0FilterTable2,
"v7d_avg_raw_CV", 'Day_summaries'[7d avg raw CV]
)
VAR __DS0PrimaryWindowed =
TOPN(
502,
__DS0Core,
[IsGrandTotalRowTotal],
0,
'Day_summaries'[UNIT_ID],
1,
'Location'[LOCATION NAME],
1
)
EVALUATE
__DS0PrimaryWindowed
ORDER BY
[IsGrandTotalRowTotal] DESC, 'Day_summaries'[UNIT_ID], 'Location'[LOCATION NAME]
I really appreciate your help here because I can't see what the problem is!
User | Count |
---|---|
12 | |
11 | |
8 | |
6 | |
6 |
User | Count |
---|---|
24 | |
19 | |
14 | |
10 | |
7 |