20 Mil row dim on 1B fact slow on filter #1237
Replies: 1 comment 2 replies
-
In general, when filters need to propagate across large relationships (i.e. the "one" side of the relationship contains more than 1 mio. rows), it is expected that the performance will suffer. Snowflaking the [Status] attribute out of the 'Customer' dim will not solve the problem, as the filter ultimately still needs to propagate from the large dim table to the fact. Instead, consider creating a smaller "junk" dimension containing attributes from the 'Customer' dim that are commonly used, and connect the junk dimension directly to the fact table. As long as your junk dimension is small (i.e. less than 1000 rows), filtering on it will be much faster than filtering on the large dimension table. Partitioning will not help either, since VertiPaq does not use partition elimination. |
Beta Was this translation helpful? Give feedback.
-
I have a dim with 20 million rows.
Fact with 1 B.
1 to many
Measures on facts run fine.
All the performance hits I get are when I try to Slice/Filter on the dim Cust to Fact
A simple slice at a page filter to filter on status (alive, dead) causes 30 seconds for data to return.
I duplicated the model customer dim but only left in 5 columns, same test, still 30 seconds.
I don't think there is any dax to fix.
I did all the 'traditional' troubleshooting.
Any other ideas?
Is there a sample LARGE online db to test like dax.do?
What if:
Status was snow flaked from customer, as a 2 row dim.
Partition customer? By Status? I have only partitioned Facts by year
Beta Was this translation helpful? Give feedback.
All reactions