fabric-pbi-perf-remediate — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited fabric-pbi-perf-remediate (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Systematic toolkit for diagnosing, analyzing, and resolving Power BI performance bottlenecks across the Microsoft Fabric platform. Covers semantic model optimization, DAX tuning, capacity management, DirectQuery diagnostics, and report design best practices.
| Tool | Purpose | Required |
|---|---|---|
| Power BI Desktop | Performance Analyzer, DAX query view | Yes |
| DAX Studio | Advanced DAX profiling and server timers | Recommended |
| Fabric Capacity Metrics App | Capacity utilization monitoring | Yes (admins) |
| Tabular Editor / Best Practice Analyzer | Semantic model analysis | Recommended |
| SQL Server Profiler | DirectQuery trace analysis | Optional |
| PowerShell 7+ | Automation scripts included in this skill | Optional |
Determine where the bottleneck lives before diving deep.
See dax-optimization-patterns.md for a comprehensive catalog of anti-patterns and fixes.
See capacity-optimization.md for Fabric-specific tuning.
spark.sql.parquet.vorder.default=trueOr use the readHeavyForPBI resource profile at the environment level.
See directquery-tuning.md for detailed guidance.
FlightRecorderCurrent.trc in the active workspaceDirectQuery Begin/EndSee capacity-optimization.md for detailed guidance.
| Symptom | Likely Cause | Quick Fix |
|---|---|---|
| All visuals slow | Capacity overloaded | Scale up SKU or reduce concurrency |
| Single visual slow | Inefficient DAX measure | Profile in DAX Studio, rewrite measure |
| Slow after slicer change | High cardinality filter | Reduce distinct values or use Top N |
| Slow first load, fast after | Cold cache | Enable query caching; check refresh schedule |
| Slow in Service, fast in Desktop | Gateway bottleneck or capacity | Check gateway logs and capacity metrics |
| Refresh takes hours | No incremental refresh | Enable incremental refresh on fact tables |
| DirectQuery timeouts | Source query too slow | Add indexes; consider Import aggregations |
| Intermittent slowness | Capacity throttling | Review Capacity Metrics app for spikes |
Run the diagnostic PowerShell script to collect environment and configuration data:
# Collect Power BI workspace and dataset metadata for analysis
./scripts/Invoke-PBIPerformanceAnalysis.ps1 -WorkspaceId "<workspace-guid>"Analyze DAX query patterns from a semantic model:
# Extract and evaluate DAX measures for common anti-patterns
./scripts/Get-DAXQueryMetrics.ps1 -DatasetId "<dataset-guid>" -WorkspaceId "<workspace-guid>"Use the performance-report-template.md to document findings and recommendations from a performance audit.
| Issue | Resolution |
|---|---|
| Performance Analyzer shows no data | Ensure you clicked "Start recording" before refreshing |
| DAX Studio cannot connect | Check XMLA endpoint is enabled on capacity (requires P1/F64+) |
| Capacity Metrics app not available | App requires admin role; install from AppSource |
| VOrder not improving PBI performance | Verify readHeavyForPBI profile is active; check file format is Delta/Parquet |
| Best Practice Analyzer missing rules | Update to latest Tabular Editor; import community rules from te2.wiki |
| Scripts fail to authenticate | Run Connect-PowerBIServiceAccount first; ensure Power BI Management module installed |
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.