Power Bi Performance Troubleshooting

power-bi-performance-troubleshooting skill for programming & development

A diagnostic skill for resolving Power BI performance issues, covering DAX optimization, data model tuning, query folding, and report load time improvement.

What Is This?

Overview

This skill provides systematic troubleshooting for slow Power BI reports, including DAX optimization, query folding verification, visual rendering, and incremental refresh for large datasets.

Who Should Use This

Perfect for Power BI report developers facing slow dashboards, data analysts optimizing complex data models, BI architects designing high-performance enterprise reports, and admins managing Power BI capacity resources.

Why Use It?

Problems It Solves

Reports become slow as data grows and DAX complexity increases. Without systematic analysis, developers apply random fixes instead of addressing root causes.

Core Highlights

  • DAX Optimization - Identify and rewrite expensive DAX formulas
  • Model Tuning - Optimize relationships, cardinality, and storage modes
  • Query Folding - Verify transformations push to the data source
  • Visual Optimization - Reduce visual count and interaction overhead
  • Capacity Planning - Right-size Power BI Premium or Fabric capacity

How to Use It?

Basic Usage

Describe your performance issue, and this skill guides systematic diagnosis.

Scenario 1: Slow DAX Measures

Ask Claude: "My Power BI report takes 30 seconds to load"

Claude will guide optimization:

// SLOW: Row-by-row iteration
Sales Amount Slow =
SUMX(
    Sales,
    RELATED(Product[UnitPrice]) * Sales[Quantity] * (1 - Sales[Discount])
)

// FAST: Pre-calculated column or optimized measure
Sales Amount Fast =
SUMX(
    Sales,
    Sales[LineTotal]
)

// SLOW: Unnecessary CALCULATE wrapping
Total Sales Slow = CALCULATE(SUM(Sales[Amount]))

// FAST: Simple aggregation
Total Sales Fast = SUM(Sales[Amount])

// SLOW: FILTER with full table scan
High Value Orders Slow =
CALCULATE(
    [Total Sales],
    FILTER(Sales, Sales[Amount] > 1000)
)

// FAST: Boolean filter context
High Value Orders Fast =
CALCULATE(
    [Total Sales],
    Sales[Amount] > 1000
)

Scenario 2: Data Model Analysis

Tell Claude: "How do I check if query folding is working?"

Claude will explain:

Power Query Editor Diagnosis Steps:

1. Open Power Query Editor
2. Right-click on the last applied step
3. Check if "View Native Query" is available
   - Available = Query folding is working
   - Grayed out = Query folding broke at this step

Common folding breakers:
- Table.AddColumn with custom functions
- Table.Buffer or List.Buffer calls
- Merges between different data sources
- Complex conditional logic in added columns

Fix: Move transformations that break folding
to DAX calculated columns instead.

Real-World Examples

Enterprise Dashboard Optimization

A Fortune 500 company reduced load time from 45 to 3 seconds by replacing complex SUMX measures with pre-aggregated columns, cutting visuals from 30 to 15, and enabling incremental refresh.

Capacity Right-Sizing

A consulting firm diagnosed Power BI Premium capacity throttling. Analysis revealed 3 reports consuming 80% of resources due to DirectQuery mode. Switching to Import mode with incremental refresh eliminated throttling.

Advanced Tips

Performance Analyzer

Use Power BI Desktop's Performance Analyzer to record visual rendering times. Sort by duration to identify the slowest visuals and their underlying DAX queries for targeted optimization.

Aggregation Tables

Create aggregation tables for large DirectQuery datasets. Power BI automatically routes queries to pre-aggregated tables when possible, reducing query time dramatically.

When to Use It?

Use Cases

  • Slow Reports - Diagnose and fix reports with long load times
  • DAX Optimization - Rewrite expensive measures for better performance
  • Model Design - Optimize relationships and storage for large datasets
  • Capacity Issues - Troubleshoot Premium or Fabric capacity throttling
  • Query Folding - Verify Power Query transformations fold to source

Related Topics

When you ask Claude these questions, this skill will activate:

  • "My Power BI report is slow"
  • "Optimize DAX performance"
  • "Fix Power BI load time"
  • "Power BI query folding not working"

Important Notes

Requirements

  • Power BI Desktop for Performance Analyzer and model editing
  • DAX Studio for advanced query profiling (recommended)
  • Access to the data source for query folding verification
  • Understanding of star schema data modeling principles

Usage Recommendations

Do:

  • Profile before optimizing - Use Performance Analyzer to identify bottlenecks
  • Simplify DAX first - Remove unnecessary CALCULATE wrappers and FILTER calls
  • Reduce visual count - Fewer visuals means fewer queries per page load
  • Use Import mode - Prefer Import over DirectQuery when data freshness allows

Don't:

  • Don't add visuals blindly - Each visual generates separate queries
  • Don't use complex DAX in filters - Keep slicer and filter formulas simple
  • Don't skip aggregations - Large tables need aggregation layers

Limitations

  • Performance Analyzer only measures client-side rendering times
  • DirectQuery performance depends on source database optimization
  • Some DAX patterns cannot be optimized without model restructuring
  • Incremental refresh requires Power BI Pro or Premium licensing