Opinion is split over Power BI’s ability to automatically create Date hierarchies in your model. Personally it drives me mad and I always turn it off, but I know a lot of people love the convenience of it. Whatever your feelings, though, it is important to be aware of the problems it can cause with the size of your model.
Imagine you have a .pbix file and you load just this one table into the data model:
Three columns, each containing three dates with long gaps in between, but only nine values overall. No other tables or queries, no measures, no visuals at all. When you save it results in a file that is a massive 4.7MB – but why, when there’s hardly any data?
Actually, there is a lot of data hidden in this file. If you connect to the .pbix file with DAX Studio you can see that the Auto Date/Time functionality has built three hidden Date tables whose names are prefixed with “LocalDateTable”, one for each date column in the original table above:
These tables can be queried in DAX Studio, and the following query reveals more about them (if you try this on your model you will need to alter the name of the table used in the query to match the names of one of the tables in your model):
[sourcecode language=”text” padlinenumbers=”true”]
"Hidden Date Table Rowcount",
COUNTROWS ( ‘LocalDateTable_17eac8aa-f559-4ade-971f-9a1ad5258fbe’ ),
MIN ( ‘LocalDateTable_17eac8aa-f559-4ade-971f-9a1ad5258fbe'[Date] ),
MAX ( ‘LocalDateTable_17eac8aa-f559-4ade-971f-9a1ad5258fbe'[Date] )
In this case each of the three tables has 109938 rows. That’s one row for each date between the beginning of the year containing the earliest date in the source column and the end of the year containing the latest date in the source column – which is the best practice for building a Date table, but results in three very large tables in this case.
To stop Power BI automatically building these tables for you, in Power BI Desktop go to the File menu, select Options, then Data Load and deselect the Auto Date/Time option:
When you do this the automatically created date tables are removed from the model. In this case, after saving, the .pbix file shrinks to 181KB! Remember that, by doing this, you won’t get automatic date hierarchies created for you when you are designing your reports and you will have to build any Date tables and hierarchies you need manually.
This is an extreme example of course, but overall you should probably turn off Auto Date/Time if your model size is an issue and:
- You have a lot of date columns in your tables, or
- Your date columns contain large ranges of dates. Remember that some systems use 1/1/1900 as an ‘unknown’ date value, which can make things a lot worse.