Forum Discussion
Optimise measure performance
Hi there,
I’m experiencing some considerable delays when applying a measure to my dashboard report – it can take up to 2 minutes for the data to load when using this measure so I wanted to ask if there might be a way to optimise performance.
I am trying to run some analysis based on customers who interact across two products on the same day. Specifically, customers who buy a ticket and also login to wifi. The two tables are fairly large (Wifi - 1,130,131 rows and Tickets - 786,430 rows)
I have written two measures for this metric using my date table to get the same day calculation:
Wifi & Tickets = CALCULATE(DISTINCTCOUNT('Wifi Signup'[Contact_Name__c]),
FILTER('Wifi Signup',
CONTAINS('Tickets',[AccountId], 'Wifi Signup'[Contact_Name__c])))
Same Day Wifi & Tickets =
SUMX(DISTINCT('Dates'[Date]), [Wifi & Tickets])
The ‘Same Day Wifi & Tickets’ measure does run but it takes an age to process and even in the office 365 space it takes way too long to refresh or load. It's impossible to use with slicers really...
If I simply use the [Wifi & Tickets] measure that runs much faster but it is not correct since I need a distinct count of customers who login and purchase on the same day. This measure just provides an overall count of cross activity customers which is useful but sadly the client wishes to understand more about same day behaviour.
Is there something really wrong with my measures that could be simplified to be less CPU greedy? Or is it simply a case of the cross table calculation running across two fairly large datasets plus matching to same day activity that is unavoidably slow?
I have done as much pruning in my data model as possible to reduce overall size just as an fyi!
Any advice or guidance would be greatly appreciated.
Thanks! 🙂
5 Replies
- amitchandak
Super User
- obothewizard
Helper I
Hi there,
Thank you for your quick response! I tried your adapted formula but the load time was still pretty hefty - it took 30 mins to populate a simple card.- obothewizard
Helper I
sorry 30 seconds! Not minutes 😊