How to Reduce Size of Power BI File

Cody Schneider

There's nothing more frustrating than a Power BI report that takes forever to open, refresh, and respond to a simple click. When your once-speedy dashboard starts acting like it's stuck in mud, the most common culprit is a bloated file size. This article will walk you through practical, high-impact techniques to shrink your Power BI (.pbix) files, improve performance, and get your reports back up to speed.

Why Does Power BI File Size Matter?

A large .pbix file isn't just a storage issue, it's a performance bottleneck. The VertiPaq engine that powers Power BI is incredibly efficient at compressing data, but it has its limits. As file size increases, you'll start to notice several problems:

  • Slow Load Times: Larger files take longer to open in Power BI Desktop and to load in the Power BI service for your end-users.

  • Lengthy Refresh Schedules: Every scheduled data refresh takes longer, increasing the risk of timeouts and data staleness.

  • Laggy Interactivity: Slicers, filters, and cross-highlighting become sluggish, creating a poor user experience.

  • Increased Resource Consumption: Both your local machine and your Power BI capacity have to work harder, consuming more memory and processing power.

The good news is that most oversized files are filled with data you don't actually need for your reports. By methodically cleaning your data model, you can dramatically reduce file size and boost performance.

Start with the Source: Optimize in Power Query

The single most effective place to reduce file size is in the Power Query Editor, before data is loaded into your model. Any data you can remove here will never be compressed, stored, or processed by the data model. Think of it as leaving unnecessary baggage behind before you even start your trip.

1. Remove Unnecessary Columns

This is the biggest and easiest win. Reports often only require a fraction of the columns available in the source data. Every column you import, especially text columns with many unique values, adds to the file size.

Action Step:

  1. In Power BI Desktop, click Transform data to open the Power Query Editor.

  2. Select a query (table) from the left pane.

  3. On the Home tab, click Choose Columns.

  4. Uncheck every single column you are not absolutely certain you need for a visual, a relationship, or a DAX measure. Be ruthless. If you're not using it, lose it.

Pro Tip: Instead of removing columns, use "Choose Columns" to select only the ones you want to keep. This documents your choices clearly and protects you if new columns are added to your source database later.

2. Filter Unnecessary Rows

Just as you don't need every column, you probably don't need every row. Do your reports really need to go back ten years? Does your sales analysis need to include returned orders or test transactions?

Action Step:

  1. In Power Query, find a column suitable for filtering, like a date or status column.

  2. Use the filter dropdown on the column header to remove data.

  3. For dates, use the Date Filters option. For example, you can set it to filter for data "In the Previous 3 Years" to keep your report relevant without storing historical data you don't need.

3. Optimize Data Types

Using the correct data types allows the Power BI engine to compress data more efficiently. The most common mistake is storing numbers as text or using a high-precision decimal when a whole number will do.

Data types to consider:

  • Text: Takes up the most space.

  • Decimal Number: Use for currency or when fractional precision is essential.

  • Fixed Decimal Number: More efficient, for values with up to four decimal places.

  • Whole Number: The most efficient for numeric data without decimals (e.g., IDs, quantities, years).

  • Date: Use the dedicated "Date" type instead of "Date/Time" if you don't need the time component.

Action Step: Review the data type for each column (indicated by the icon in the column header) in Power Query and choose the most efficient type that still meets your needs.

4. Reduce Column Cardinality

Cardinality simply means the number of unique values in a column. Columns with very high cardinality (like a timestamp with milliseconds, or a user ID in a massive table) are very difficult for Power BI to compress.

Common examples:

  • Datetime Stamps: If you have a column with a full date and timestamp down to the second (e.g., 2023-10-27 10:35:01), it could be entirely unique for every row.

    • Solution: In Power Query, split this into two separate columns: one for "Date" and another for "Time" (if needed). The Date column will have low cardinality (only 365 unique values per year), making it much easier to compress.

  • Primary Keys / IDs: Columns like TransactionID are, by definition, unique for every row. If you only need these to create relationships, that's fine. But if you're importing them from a very large table and not using them, get rid of them.

  • Concatenated Text Fields: A description or notes field where every entry is unique is another example. Avoid bringing these fields into your dataset unless absolutely necessary for a slicer or table visual.

Tune Your Data Model

After you've trimmed down the data in Power Query, you can make further optimizations to the data model itself within the main Power BI window.

1. Disable 'Auto Date/Time'

By default, Power BI creates a hidden date table in the background for every date or datetime column in your model. If you have five date columns, Power BI creates five of these hidden tables. This quickly adds unnecessary size and complexity.

Action Step (for the current file):

  1. Go to File > Options and settings > Options.

  2. Under the "Current File" section, click on Data Load.

  3. Uncheck Auto date/time.

You should also disable this globally for all new projects under the "Global" section of the options menu.

2. Use a Dedicated Date Table

Once you disable auto date/time, you'll lose the built-in date hierarchies. The proper way to handle time intelligence is to create a dedicated date table (or calendar table). A single, slim date table with columns for Year, Quarter, Month, Week, etc., that is related to your fact tables is far more efficient than multiple hidden tables.

You can create a new date table using a simple DAX formula:

Then, create relationships from this Date Table to the date columns in your fact tables (like your Sales table or Traffic table). Now, your entire model can use one centralized table for all date-related filtering and analysis.

Advanced Tools & Final Checks

Use the Performance Analyzer

If your report is slow even after model optimizations, use the built-in Performance Analyzer to identify which visuals are causing the biggest slowdowns.

  1. Go to the View tab in Power BI Desktop and check Performance Analyzer.

  2. A new pane will open. Click Start recording.

  3. Interact with your report — click slicers, cross-filter charts, switch pages.

  4. The analyzer will show you how many milliseconds each element took to process. Look for visuals with long "DAX query" or "Visual display" times. These are your candidates for optimization, such as simplifying the underlying DAX measure or choosing a less complex visual type.

Check for Summary Information from Data Sources (Less Common)

In some rare cases with specific connectors, Power BI might try to store a summarized preview of the data, which can add file size. You can use external tools like DAX Studio to check this, but for most users, focusing on the steps above will provide more than enough savings.

Final Thoughts

Trimming down your Power BI file isn't about a single magic fix, it's about a series of smart, deliberate optimizations. By being disciplined about removing unused data in Power Query and building an efficient star schema with a dedicated date table, you can cut your file size in half (or more) and create reports that are a pleasure to use.

Looking over these steps, you'll notice much of the work is spent manually preparing data before you even build a chart. We got tired of this repetitive cycle of downloading, cleaning, and modeling data from sources like Google Analytics, Shopify, and Salesforce. That's why we created Graphed. It connects to your data sources and automates the entire reporting process — letting you create real-time, shareable dashboards just by describing what you want to see in plain English. Instead of spending hours trimming fat, you can get straight to the insights.