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

Power BI is turning 10! Let’s celebrate together with dataviz contests, interactive sessions, and giveaways. Register now.

Reply
Jeanxyz
Impactful Individual
Impactful Individual

table size from vertipaq analyzer

I'm trying to figure out the slow refreshing of a PB report. In my model, there are two calendar tables: Dim_Date is created via DAX code, Dim_SlicerDate is a copy of Dim_Date (DAX expression: Dim_SlicerDate = Dim_Date). Dim_SlicerDate is not connected to any other table, so I assume the table size of both should be the same. But when I have run the vertipaq analyzer, it shows the total size of Dim_SlicerDate is much bigger than Dim_Date. I couldn't figure out the reason since they are exactly the same table.Screenshot 2025-05-21 094121.png

 

1 ACCEPTED SOLUTION
burakkaragoz
Community Champion
Community Champion

Hi @Jeanxyz ,

 

This is a great observation — and yes, it can be confusing at first.

Even though Dim_SlicerDate = Dim_Date creates a copy of the table, Power BI treats it as a separate physical table in the model. That means it will have its own storage, encoding, and dictionary structures — even if the data is identical.

Now, regarding the size difference:

  1. Unused relationships
    Since Dim_SlicerDate is not connected to any other table, the engine might not optimize its storage the same way it does for Dim_Date, which is likely part of active relationships and used in visuals/measures.

  2. Encoding differences
    VertiPaq may choose different encoding strategies for each table depending on how it's used. Even if the data is the same, the context (e.g., usage in visuals, filters, slicers) can lead to different compression results.

  3. Column usage
    If Dim_SlicerDate is used in slicers or visuals with high cardinality columns (like full date or datetime), it can increase memory usage significantly.

What you can try:

  • Use TREATAS() or USERELATIONSHIP() instead of duplicating the table if you only need it for slicers.
  • Or, create a slimmed-down version of the slicer table with only the necessary columns (e.g., just Date or Month).
  • You can also try using calculated columns or disconnected tables with fewer columns to reduce memory footprint.

Let me know if you want help restructuring the model — happy to assist.

 

If my response resolved your query, kindly mark it as the Accepted Solution to assist others. Additionally, I would be grateful for a 'Kudos' if you found my response helpful.

View solution in original post

3 REPLIES 3
burakkaragoz
Community Champion
Community Champion

Hi @Jeanxyz ,

 

This is a great observation — and yes, it can be confusing at first.

Even though Dim_SlicerDate = Dim_Date creates a copy of the table, Power BI treats it as a separate physical table in the model. That means it will have its own storage, encoding, and dictionary structures — even if the data is identical.

Now, regarding the size difference:

  1. Unused relationships
    Since Dim_SlicerDate is not connected to any other table, the engine might not optimize its storage the same way it does for Dim_Date, which is likely part of active relationships and used in visuals/measures.

  2. Encoding differences
    VertiPaq may choose different encoding strategies for each table depending on how it's used. Even if the data is the same, the context (e.g., usage in visuals, filters, slicers) can lead to different compression results.

  3. Column usage
    If Dim_SlicerDate is used in slicers or visuals with high cardinality columns (like full date or datetime), it can increase memory usage significantly.

What you can try:

  • Use TREATAS() or USERELATIONSHIP() instead of duplicating the table if you only need it for slicers.
  • Or, create a slimmed-down version of the slicer table with only the necessary columns (e.g., just Date or Month).
  • You can also try using calculated columns or disconnected tables with fewer columns to reduce memory footprint.

Let me know if you want help restructuring the model — happy to assist.

 

If my response resolved your query, kindly mark it as the Accepted Solution to assist others. Additionally, I would be grateful for a 'Kudos' if you found my response helpful.

Thanks for sharing. In my case, the difference is mainly caused by "mark as date table". If I mark Dim_SlicerDate as date table, the total size shrink 10+Mb to 0.3MB. 

 

Thanks for the follow-up — that makes sense.

Yeah, marking the table as a date table can definitely help with storage, especially if it enables optimizations like auto-generated date hierarchies being skipped or better encoding.

Good catch — might help others running into similar memory issues with disconnected slicer tables.

Let me know if you test any other tweaks, always curious to learn more from real cases.


If my response resolved your query, kindly mark it as the Accepted Solution to assist others. Additionally, I would be grateful for a 'Kudos' if you found my response helpful.

Helpful resources

Announcements
June 2025 Power BI Update Carousel

Power BI Monthly Update - June 2025

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

May 2025 Monthly Update

Fabric Community Update - May 2025

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