← 30 Days Power BI Series
Day 20 of 30AdvancedPerformance

Day 20: Power BI Performance Optimisation

5 questions · Power BI Interview Preparation

Q1

What are the main causes of slow Power BI reports?

Five most common causes: (1) Too many visuals on one page — each visual runs a DAX query; 30 visuals = 30 queries on page load. (2) Inefficient DAX — FILTER on large tables instead of CALCULATE with direct filter arguments. (3) Too many relationships or bidirectional relationships creating complex filter propagation. (4) DirectQuery with slow source database — every visual interaction sends a SQL query. (5) Large imported dataset with many columns and rows not needed for the report — import only required columns. Diagnose with Performance Analyser.

💡 Interview tip: Performance is a senior topic. Showing you know Performance Analyser and can identify DAX vs visual vs model issues signals experience.
Q2

What is VertiPaq and why does it matter for Power BI performance?

VertiPaq is Power BI's in-memory columnar storage engine that compresses and stores Import mode data. It uses column-level compression (values are stored as dictionary + encoded integers) which makes repeated values very cheap. Design implications: (1) High cardinality columns (unique ID per row) compress poorly — avoid importing unnecessary ID columns. (2) Text columns with many unique values take more memory than numeric columns. (3) Fewer columns = smaller model = faster queries. Use DAX Studio (free external tool) to analyse VertiPaq storage and identify large columns.

💡 Interview tip: VertiPaq is an advanced topic for Power BI developer and senior analyst roles. Knowing that columnar storage means high-cardinality columns are expensive demonstrates depth.
Q3

How do you reduce the size of a Power BI model?

Six techniques: (1) Import only needed columns — remove every column not used in measures, visuals, or relationships. (2) Import only needed rows — filter source data in Power Query to the date range and scope needed. (3) Avoid calculated columns — use measures instead where possible; calculated columns are stored for every row. (4) Use integer keys instead of text keys for relationships — integers compress far better. (5) Replace high-cardinality text columns with coded values and a lookup table. (6) Remove date/time columns and replace with a separate Date table — the time component of DateTime columns explodes cardinality.

💡 Interview tip: Model size directly affects refresh speed, query speed, and whether the model fits within Pro (1 GB) or Premium limits. Always ask "do I need this column?" before importing.
Q4

What is the difference between FILTER and CALCULATE with a direct filter in terms of performance?

CALCULATE with direct filter argument: CALCULATE(SUM(Sales[Revenue]), Sales[Region] = "North") — efficient. Power BI optimises this directly against the column index. CALCULATE with FILTER: CALCULATE(SUM(Sales[Revenue]), FILTER(Sales, Sales[Region] = "North")) — slower. FILTER iterates every row of the Sales table and evaluates the condition for each row. For simple equality filters, always use CALCULATE with direct filter arguments. Use FILTER only when the condition is complex (row-level expression, multiple column references) and cannot be expressed as a direct argument.

💡 Interview tip: This is a common DAX optimisation question. Simple equality filters → direct CALCULATE argument. Complex row-level conditions → FILTER. Know when each is appropriate.
Q5

What is aggregation in Power BI and how does it help performance?

Aggregations are pre-computed summary tables stored in the model that Power BI uses to answer high-level queries without scanning the full detail table. Example: a Sales fact table with 100M rows has a SalesAgg table summarised by Month and Product Category with total revenue. When a visual queries revenue by month, Power BI hits the small aggregation table (fast). When a visual drills to individual orders, it hits the full detail table. Configure via: right-click the aggregation table → Manage Aggregations → map each column to the detail table. This is a Power BI Premium feature that enables sub-second performance on very large datasets.

💡 Interview tip: Aggregations are an advanced enterprise feature. Knowing they exist and the concept (summary table for high-level queries, detail table for drill-down) is sufficient for most interviews.
← Day 19All DaysDay 21

Want live Power BI coaching?

Join EVIKA Academy for hands-on Power BI training with real projects and placement support in Delhi NCR.

Book Free Demo →
Best Data Analytics Course in Noida Delhi NCR | EVIKA ACADEMY