Skip to content

Commit c3ef63e

Browse files
authored
Merge pull request #13 from DAXNoobJustin/feat/dax-optimization-guidance
feat: Add DAX optimization skill with tool-agnostic performance guide
2 parents cdd89a6 + 504cbb5 commit c3ef63e

10 files changed

Lines changed: 1254 additions & 1 deletion

File tree

ATTRIBUTIONS.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,3 +4,4 @@ Community contributions and suggestions that shaped this project.
44

55
- **Fabric CLI skill; Using DuckDB to query Lakehouse Tables:** Approach suggested by [Jan Hoet](https://www.linkedin.com/feed/update/urn:li:ugcPost:7443280165612249088?commentUrn=urn%3Ali%3Acomment%3A%28ugcPost%3A7443280165612249088%2C7443321316507680768%29&replyUrn=urn%3Ali%3Acomment%3A%28ugcPost%3A7443280165612249088%2C7445408056752041985%29&dashCommentUrn=urn%3Ali%3Afsd_comment%3A%287443321316507680768%2Curn%3Ali%3AugcPost%3A7443280165612249088%29&dashReplyUrn=urn%3Ali%3Afsd_comment%3A%287445408056752041985%2Curn%3Ali%3AugcPost%3A7443280165612249088%29).
66
- **Fabric CLI skill; Notebook-less Livy API execution:** Approach suggested by [Alex Dupler](https://x.com/alexdupler).
7+
- **DAX optimization skill:** Contributed by [Justin Martin](https://daxnoob.blog).

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -167,6 +167,7 @@ Hook checks can be individually toggled via config files. Set any check to `fals
167167
| Skill | [`refreshing-semantic-model`](plugins/semantic-models/skills/refreshing-semantic-model/) | Trigger or troubleshoot refreshes |
168168
| Skill | [`lineage-analysis`](plugins/semantic-models/skills/lineage-analysis/) | Trace downstream reports from a semantic model across workspaces |
169169
| Skill | [`power-query`](plugins/semantic-models/skills/power-query/) | Write M expressions, debug query folding, execute M locally or via Fabric API |
170+
| Skill | [`dax`](plugins/semantic-models/skills/dax/) | Write, debug, and optimize DAX in semantic models |
170171
| Agent | [`semantic-model-auditor`](plugins/semantic-models/agents/semantic-model-auditor.md) | Audit semantic models for quality, memory, DAX, and design issues |
171172

172173
</details>

plugins/semantic-models/agents/semantic-model-auditor.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -207,6 +207,12 @@ Perform the following checks, categorized by severity:
207207
- Columns: Should match source or use consistent pattern
208208
- Tables: Should be singular or plural consistently
209209

210+
## Related Skills
211+
212+
- **[`dax`](../skills/dax/)** — DAX performance optimization
213+
- **[`review-semantic-model`](../skills/review-semantic-model/)** — Full model quality review
214+
- **[`standardize-naming-conventions`](../skills/standardize-naming-conventions/)** — Naming remediation
215+
210216
## Model Design Issues
211217

212218
### 20. Star Schema Violations
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
---
2+
name: dax
3+
version: 0.21.1
4+
description: DAX performance optimization for semantic models. Automatically invoke when the user asks to "optimize DAX", "fix slow DAX", "DAX performance", "tune a measure", "debug a measure", "DAX anti-patterns", or mentions slow queries, server timings, or DAX authoring.
5+
---
6+
7+
# DAX
8+
9+
Skills and references for writing, debugging, and optimizing DAX in semantic models.
10+
11+
## Optimization
12+
13+
For systematic DAX query performance optimization, read the workflow reference first:
14+
15+
**[`references/dax-performance-optimization.md`](./references/dax-performance-optimization.md)** — Tiered framework (4 tiers), phased workflow, decision guide, and error handling.
16+
17+
Detailed reference files (progressive disclosure — consult as directed by the workflow):
18+
19+
- **[`references/engine-internals.md`](./references/engine-internals.md)** — FE/SE architecture, xmSQL, compression/segments, SE fusion, trace diagnostics
20+
- **[`references/dax-patterns.md`](./references/dax-patterns.md)** — Tier 1 DAX patterns (DAX001–DAX021) + Tier 2 query structure (QRY001–QRY004)
21+
- **[`references/model-optimization.md`](./references/model-optimization.md)** — Tier 3 model patterns (MDL001–MDL010) + Tier 4 Direct Lake (DL001–DL002)
22+
23+
Trace capture and performance profiling:
24+
25+
- **Local models (Power BI Desktop):** Use the [`connect-pbid` skill](../../../pbi-desktop/skills/connect-pbid/) — specifically `performance-profiling.md` for FE/SE timing and `evaluateandlog-debugging.md` for intermediate result inspection.
26+
- **Remote models (Fabric Service / XMLA):** Use the [`powerbi-modeling-mcp`](https://marketplace.visualstudio.com/items?itemName=analysis-services.powerbi-modeling-mcp) VS Code extension for trace and query operations. Install: `code --install-extension analysis-services.powerbi-modeling-mcp`
27+
28+
## Related Skills
29+
30+
- [`review-semantic-model`](../review-semantic-model/) — Model auditing including DAX anti-patterns and best practices
31+
- [`connect-pbid` (pbi-desktop plugin)](../../../pbi-desktop/skills/connect-pbid/) — Trace capture, performance profiling, EVALUATEANDLOG debugging
32+
- [`lineage-analysis`](../lineage-analysis/) — Impact analysis before model changes

0 commit comments

Comments
 (0)