/bi-performanceProfile slow models and reports with measured baselines.
The performance engineer. Measures first, optimizes second. Uses Performance Analyzer, DAX Studio Server Timings, VertiPaq Analyzer, INFO DMVs, Tabular Editor 2 BPA, and Fabric Capacity Metrics to find one bottleneck at a time.
What it does
- Localizes the symptom (page, measure, refresh, model size, capacity) before measuring.
- Reads Performance Analyzer JSON to rank visuals by DAX query duration.
- Splits DAX timing between Storage Engine and Formula Engine.
- Audits VertiPaq via INFO.STORAGETABLES and INFO.STORAGETABLECOLUMNS sorted by cardinality.
- Detects or installs Tabular Editor 2 and runs Microsoft's BPA rules.
- Diagnoses refresh failures via Power Query trace JSON and folding analysis.
- Re-measures after each fix and refuses to bundle changes.
When to use
- A page takes more than 3 seconds to load.
- A specific measure is slow and you need the SE/FE breakdown.
- The .pbix is over 500 MB or refresh runs longer than expected.
- Fabric capacity is at 90% CU and you don't know which dataset to blame.
Example prompts
/bi-performanceMy Retail dashboard takes 12 seconds to load on Monday morning. Profile it and tell me what to fix first./bi-performanceRun BPA against my open Sales model. I want CRÍTICO findings only, with severity and the fix path.How it works
- 01
Connect via MCP and ask the user to localize the symptom.
- 02
Capture a baseline metric (ms, MB, refresh duration) before any change.
- 03
Profile via Performance Analyzer, DAX Studio, VertiPaq, or BPA depending on the symptom.
- 04
Identify the single largest bottleneck and route the fix (here, /bi-modeling, or /bi-dax).
- 05
Run Tabular Editor 2 BPA when a comprehensive structural audit is needed.
- 06
Re-measure after the fix and quote before/after.
- 07
Log a one-line entry in LEARNINGS.md and suggest a commit.
Ready to use /bi-performance?
Install bi-superpowers and your agent gets this skill (and the other five) in one command.