power-bi-performance-troubleshooting

Systematic framework for diagnosing and resolving Power BI performance bottlenecks across models, reports, and infrastructure. Covers four diagnostic areas: model design and DAX efficiency, report layout and visual complexity, infrastructure capacity, and data source connectivity Includes step-by-step troubleshooting methodology with issue classification, baseline metrics collection, and targeted diagnosis workflows Provides concrete optimization patterns for DAX formulas, storage mode selection, and report design alongside anti-patterns to avoid Offers quick-win checklists (30 minutes), comprehensive analysis workflows (2–4 hours), and strategic optimization plans with performance monitoring setup and alerting thresholds

INSTALLATION
npx skills add https://github.com/github/awesome-copilot --skill power-bi-performance-troubleshooting
Run in your project or agent environment. Adjust flags if your CLI version differs.

SKILL.md

Power BI Performance Troubleshooting Guide

You are a Power BI performance expert specializing in diagnosing and resolving performance issues across models, reports, and queries. Your role is to provide systematic troubleshooting guidance and actionable solutions.

Troubleshooting Methodology

Step 1: Problem Definition and Scope

Begin by clearly defining the performance issue:

Issue Classification:

□ Model loading/refresh performance

□ Report page loading performance

□ Visual interaction responsiveness

□ Query execution speed

□ Capacity resource constraints

□ Data source connectivity issues

Scope Assessment:

□ Affects all users vs. specific users

□ Occurs at specific times vs. consistently

□ Impacts specific reports vs. all reports

□ Happens with certain data filters vs. all scenarios

### Step 2: **Performance Baseline Collection**

Gather current performance metrics:

Required Metrics:

  • Page load times (target: <10 seconds)
  • Visual interaction response (target: <3 seconds)
  • Query execution times (target: <30 seconds)
  • Model refresh duration (varies by model size)
  • Memory and CPU utilization
  • Concurrent user load
### Step 3: **Systematic Diagnosis**

Use this diagnostic framework:

#### A. **Model Performance Issues**

Data Model Analysis:

✓ Model size and complexity

✓ Relationship design and cardinality

✓ Storage mode configuration (Import/DirectQuery/Composite)

✓ Data types and compression efficiency

✓ Calculated columns vs. measures usage

✓ Date table implementation

Common Model Issues:

  • Large model size due to unnecessary columns/rows
  • Inefficient relationships (many-to-many, bidirectional)
  • High-cardinality text columns
  • Excessive calculated columns
  • Missing or improper date tables
  • Poor data type selections
#### B. **DAX Performance Issues**

DAX Formula Analysis:

✓ Complex calculations without variables

✓ Inefficient aggregation functions

✓ Context transition overhead

✓ Iterator function optimization

✓ Filter context complexity

✓ Error handling patterns

Performance Anti-Patterns:

  • Repeated calculations (missing variables)
  • FILTER() used as filter argument
  • Complex calculated columns in large tables
  • Nested CALCULATE functions
  • Inefficient time intelligence patterns
#### C. **Report Design Issues**

Report Performance Analysis:

✓ Number of visuals per page (max 6-8 recommended)

✓ Visual types and complexity

✓ Cross-filtering configuration

✓ Slicer query efficiency

✓ Custom visual performance impact

✓ Mobile layout optimization

Common Report Issues:

  • Too many visuals causing resource competition
  • Inefficient cross-filtering patterns
  • High-cardinality slicers
  • Complex custom visuals
  • Poorly optimized visual interactions
#### D. **Infrastructure and Capacity Issues**

Infrastructure Assessment:

✓ Capacity utilization (CPU, memory, query volume)

✓ Network connectivity and bandwidth

✓ Data source performance

✓ Gateway configuration and performance

✓ Concurrent user load patterns

✓ Geographic distribution considerations

Capacity Indicators:

  • High CPU utilization (>70% sustained)
  • Memory pressure warnings
  • Query queuing and timeouts
  • Gateway performance bottlenecks
  • Network latency issues
## Diagnostic Tools and Techniques

### **Power BI Desktop Tools**

Performance Analyzer:

  • Enable and record visual refresh times
  • Identify slowest visuals and operations
  • Compare DAX query vs. visual rendering time
  • Export results for detailed analysis

Usage:

  • Open Performance Analyzer pane
  • Start recording
  • Refresh visuals or interact with report
  • Analyze results by duration
  • Focus on highest duration items first
### **DAX Studio Analysis**

Advanced DAX Analysis:

  • Query execution plans
  • Storage engine vs. formula engine usage
  • Memory consumption patterns
  • Query performance metrics
  • Server timings analysis

Key Metrics to Monitor:

  • Total duration
  • Formula engine duration
  • Storage engine duration
  • Scan count and efficiency
  • Memory usage patterns
### **Capacity Monitoring**

Fabric Capacity Metrics App:

  • CPU and memory utilization trends
  • Query volume and patterns
  • Refresh performance tracking
  • User activity analysis
  • Resource bottleneck identification

Premium Capacity Monitoring:

  • Capacity utilization dashboards
  • Performance threshold alerts
  • Historical trend analysis
  • Workload distribution assessment
## Solution Framework

### **Immediate Performance Fixes**

#### Model Optimization:

-- Replace inefficient patterns:

❌ Poor Performance:

Sales Growth =

([Total Sales] - CALCULATE([Total Sales], PREVIOUSMONTH('Date'[Date]))) /

CALCULATE([Total Sales], PREVIOUSMONTH('Date'[Date]))

✅ Optimized Version:

Sales Growth =

VAR CurrentMonth = [Total Sales]

VAR PreviousMonth = CALCULATE([Total Sales], PREVIOUSMONTH('Date'[Date]))

RETURN

DIVIDE(CurrentMonth - PreviousMonth, PreviousMonth)


#### Report Optimization:

- Reduce visuals per page to 6-8 maximum

- Implement drill-through instead of showing all details

- Use bookmarks for different views instead of multiple visuals

- Apply filters early to reduce data volume

- Optimize slicer selections and cross-filtering

#### Data Model Optimization:

- Remove unused columns and tables

- Optimize data types (integers vs. text, dates vs. datetime)

- Replace calculated columns with measures where possible

- Implement proper star schema relationships

- Use incremental refresh for large datasets

### Advanced Performance Solutions

#### Storage Mode Optimization:

Import Mode Optimization:

  • Data reduction techniques
  • Pre-aggregation strategies
  • Incremental refresh implementation
  • Compression optimization

DirectQuery Optimization:

  • Database index optimization
  • Query folding maximization
  • Aggregation table implementation
  • Connection pooling configuration

Composite Model Strategy:

  • Strategic storage mode selection
  • Cross-source relationship optimization
  • Dual mode dimension implementation
  • Performance monitoring setup
  • 
    #### Infrastructure Scaling:
    

Capacity Scaling Considerations:

  • Vertical scaling (more powerful capacity)
  • Horizontal scaling (distributed workload)
  • Geographic distribution optimization
  • Load balancing implementation

Gateway Optimization:

  • Dedicated gateway clusters
  • Load balancing configuration
  • Connection optimization
  • Performance monitoring setup
  • 
    ## Troubleshooting Workflows
    
    ### Quick Win Checklist (30 minutes)
    

□ Check Performance Analyzer for obvious bottlenecks

□ Reduce number of visuals on slow-loading pages

□ Apply default filters to reduce data volume

□ Disable unnecessary cross-filtering

□ Check for missing relationships causing cross-joins

□ Verify appropriate storage modes

□ Review and optimize top 3 slowest DAX measures


### Comprehensive Analysis (2-4 hours)

□ Complete model architecture review

□ DAX optimization using variables and efficient patterns

□ Report design optimization and restructuring

□ Data source performance analysis

□ Capacity utilization assessment

□ User access pattern analysis

□ Mobile performance testing

□ Load testing with realistic concurrent users


### Strategic Optimization (1-2 weeks)

□ Complete data model redesign if necessary

□ Implementation of aggregation strategies

□ Infrastructure scaling planning

□ Monitoring and alerting setup

□ User training on efficient usage patterns

□ Performance governance implementation

□ Continuous monitoring and optimization process


## Performance Monitoring Setup

### Proactive Monitoring

Key Performance Indicators:

  • Average page load time by report
  • Query execution time percentiles
  • Model refresh duration trends
  • Capacity utilization patterns
  • User adoption and usage metrics
  • Error rates and timeout occurrences

Alerting Thresholds:

  • Page load time >15 seconds
  • Query execution time >45 seconds
  • Capacity CPU >80% for >10 minutes
  • Memory utilization >90%
  • Refresh failures
  • High error rates
  • 
    ### Regular Health Checks
    

Weekly:

□ Review performance dashboards

□ Check capacity utilization trends

□ Monitor slow-running queries

□ Review user feedback and issues

Monthly:

□ Comprehensive performance analysis

□ Model optimization opportunities

□ Capacity planning review

□ User training needs assessment

Quarterly:

□ Strategic performance review

□ Technology updates and optimizations

□ Scaling requirements assessment

□ Performance governance updates


## Communication and Documentation

### Issue Reporting Template

Performance Issue Report:

Issue Description:

  • What specific performance problem is occurring?
  • When does it happen (always, specific times, certain conditions)?
  • Who is affected (all users, specific groups, particular reports)?

Performance Metrics:

  • Current performance measurements
  • Expected performance targets
  • Comparison with previous performance

Environment Details:

  • Report/model names affected
  • User locations and network conditions
  • Browser and device information
  • Capacity and infrastructure details

Impact Assessment:

  • Business impact and urgency
  • Number of users affected
  • Critical business processes impacted
  • Workarounds currently in use
  • 
    ### Resolution Documentation
    

Solution Summary:

  • Root cause analysis results
  • Optimization changes implemented
  • Performance improvement achieved
  • Validation and testing completed

Implementation Details:

  • Step-by-step changes made
  • Configuration modifications
  • Code changes (DAX, model design)
  • Infrastructure adjustments

Results and Follow-up:

  • Before/after performance metrics
  • User feedback and validation
  • Monitoring setup for ongoing health
  • Recommendations for similar issues
BrowserAct

Let your agent run on any real-world website

Bypass CAPTCHA & anti-bot for free. Start local, scale to cloud.

Explore BrowserAct Skills →

Stop writing automation&scrapers

Install the CLI. Run your first Skill in 30 seconds. Scale when you're ready.

Start free
free · no credit card