Forum Discussion
zazaalaza
2 years agoFrequent Visitor
DAX too Slow with Filtering
Hi,
I have the following measure:
Measure =
CALCULATE (
COUNT ( 'Table'[Value] ),
FILTER (
ALL ( 'Table' ),
'Table'[ValidFromDate] < MAX ( 'Date'[Date] ) &&
'Table'[ValidToDate] > MAX ( 'Date'[Date] )
)
)
The two tables (Table, Date) are not connected.
I use this to see "Active" contracts on a specific date. However when I place it in a visual to see it on a daily basis (last 12 months for example), it is way too slow (I have 12 million rows).
Is there a way to optimize this?
Much appreciated!
4 Replies
- AlexisOlsonSuper User
It might help to make the max date a variable.
Measure = VAR _MaxDate = MAX ( 'Date'[Date] ) RETURN CALCULATE ( COUNT ( 'Table'[Value] ), ALL ( 'Table' ), 'Table'[ValidFromDate] < _MaxDate, 'Table'[ValidToDate] > _MaxDate )- zazaalazaFrequent Visitor
Thanks but that doesn't help.
- zazaalazaFrequent Visitor
Perhaps there is a way to make it faster without using Calculate? Greg_Deckler Any ideas?
- AlexisOlsonSuper User
Yeah, I have seen this pattern be slow occasionally.
Without CALCULATE can be written fairly similarly.Measure = VAR _MaxDate = MAX ( 'Date'[Date] ) RETURN COUNTROWS ( FILTER ( ALL ( 'Table' ), 'Table'[ValidFromDate] < _MaxDate && 'Table'[ValidToDate] > _MaxDate ) )