Power Query wird langsam? Deine Abfrage braucht 10 Minuten zum laden? Das ist lösbar!
Das klassische Problem: Performance-Probleme entstehen meist durch:
- Zu viele Transformationen (20+ Steps!)
- Filter zu spät (erst am Ende statt am Anfang!)
- Große Datenmengen ohne Optimierung
- Fehlerhafte Quellverbindungen (Network Timeouts!)
- Ungünstige M-Code Patterns
Die Lösung: Performance-Audit durchführen → Bottlenecks finden → Optimieren!
In diesem Tutorial lernst du: Wie du Power Query Performance-Probleme diagnosierst & optimierst für Blitzgeschwindigkeit!
1. Performance Probleme erkennen – Die Symptome
| Symptom | Ursache | Lösung |
|---|---|---|
| Sehr lange Ladezeit (>1min) | Zu viele Zeilen/Spalten? Teure Operationen? | Filter früh, Spalten entfernen, Transformationen vereinfachen |
| Fehler nach einigen Minuten | Timeout! Server antwortet nicht | Größere Query Timeout setzen oder Split in mehrere Queries |
| RAM ausgelastet (Excel friert ein) | Zu viele Daten im Memory | Weniger Spalten, Split groß Queries, Load to Power Pivot |
| Fehler: "Not Enough Memory" | Zu viele Zwischenresultate | Berechnet Columns reducen, Load to Data Model, Smaller chunks |
| Inkonsistente Fehler (manchmal OK, manchmal Fehler) | Netzwerk instabil oder Server belastet | Query Timeout erhöhen, Server-Load prüfen, Connection testen |
2. Die Top 5 Performance-Killer
1. Filter zu spät (am Ende statt am Anfang!)
🟢 RICHTIG (Schnell!):
2. Zu viele Spalten laden (du brauchst nicht alle!)
3. Komplexe Transformationen (Pivot, Unpivot, etc.) auf großen Daten
Lösung: Erst filtern/aggregieren → Dann Pivot auf kleineren Daten!
4. Fehlerhafte Data Type Änderungen
Bessere Lösung: M-Code Manual Type Change für kritische Spalten nur!
5. Keine Query Folding (Die M-Code wird nicht auf Source übertragen!)
→ Server macht die Arbeit (schnell!) statt Excel (langsam!)
Problem: Viele M-Code Funktionen brechen Query Folding ab!
3. Query Folding verstehen – Die Game-Changer
Query Folding = Power Query sendet Filter/Transformationen zur Datenquelle statt lokal zu verarbeiten!
Wie erkennst du Query Folding?
- Step auswählen in Applied Steps
- Rechtsklick → "View Native Query" (wenn verfügbar!)
- Wenn native Query angezeigt wird → Query Folding aktiv! ✅
- Wenn "View Native Query" grayed out → Query Folding broken! ❌
Query Folding breakers (vermeiden!):
4. Fallstudie 1: 10M Zeilen Verkaufsdaten – Vor & Nach Optimierung
VORHER (Langsam – 5 Minuten!):
| Step | Problem | Zeilen |
|---|---|---|
| 1. Source (DB Query) | Alle 10M Zeilen mit 30 Spalten | 10M ❌ |
| 2. Add custom Column | Komplexe Berechnung auf 10M | 10M 🐌 |
| 3. Pivot Region | Pivot 10M Zeilen! | 10M 🔥 |
| 4. Filter Region | ZU SPÄT! | 9.9M |
NACHHER (Optimiert – 10 Sekunden!):
| Step | Optimierung | Zeilen |
|---|---|---|
| 1. Source (DB Query mit Filter!) | Nur Region="Nord" + nötige Spalten | 100K ✅ |
| 2. Select Columns | Nur 5 Spalten brauchen | 100K ✅ |
| 3. Add Custom Column | Jetzt nur auf 100K! | 100K ✅ |
| 4. Pivot Region | Viel kleinere Daten | 100K ✅ |
Resultat: 5 Minuten → 10 Sekunden! 🚀 (99% schneller!)
5. Best Practices für Performance-Optimierung
✅ Tipp 1: Filter immer am Anfang!
Dann nur noch kleine Daten transformieren!
✅ Tipp 2: Spalten früh selektieren!
10M Zeilen × 30 Spalten vs. 10M Zeilen × 5 Spalten = großer Unterschied!
✅ Tipp 3: Query Folding aktivieren!
View Native Query prüfen ob Folding noch funktioniert!
✅ Tipp 4: Aggregation VOR großen Transformationen!
✅ Tipp 5: Query Timeout erhöhen (für große Daten)!
Für sehr große Operationen → 30 Minuten oder mehr!
6. Debugging Performance – Schritt-für-Schritt
Die Checkliste:
- Klick auf jeden Step → Zeilen zählen in Vorschau
- Wo "explodiert" die Zeilenzahl?
- Wo wird's langsam?
Schritt 2: Query Folding prüfen
- View Native Query verfügbar?
- Wo bricht Folding ab?
Schritt 3: M-Code Analysis
- Advanced Editor öffnen
- Query Folding breaker identifizieren
- Vereinfachen oder anders schreiben
Schritt 4: Restrukturieren
- Filter am Anfang?
- Spalten selektieren?
- Aggregation VOR Pivot/Unpivot?
7. Häufige Performance-Fehler & Lösungen
- Escape drücken um Query zu canceln
- Last Step removeen (Applied Steps panel)
- Query Timeout erhöhen (Options)
- Aber: Applied Steps analysieren um echtes Problem zu finden!
- Schnell: Excel neustarten → Memory freigeben
- Mittelfristig: Weniger Spalten laden, Kleinere Datenmengen
- Langfristig: Load to Power Pivot statt Worksheet → Komprimierung!
- Server ist belastet? → Zu Spitzenzeiten langsamer
- Netzwerk-Lag? → Test mit kleinerer Query
- Connection ist intermittent? → IT-Team kontaktieren!
- Power Query profiler: Performance analyzer in Advanced Editor
- DAX Studio: Kostenlose Tool für Timing
- SQL Profiler: Wenn DB-Quelle, was wird auf Server ausgeführt?
8. Deine nächsten Schritte
- Applied Steps durchgehen: Welcher Step dauert lange?
- Query Folding prüfen: "View Native Query" aktiviert?
- Top 5 Killer identifizieren: Welche trifft zu?
- Restrukturieren: Filter am Anfang? Spalten selekt?
- Testen: Ist es schneller?
- Query Timeout erhöhen: Wenn nötig
- Load to Power Pivot: Für große Datenmodelle
Checkliste für Power Query Performance
- Ich kenne die Performance-Symptome
- Ich verstehe die Top 5 Performance-Killer
- Ich weiß was Query Folding ist
- Ich kann Query Folding prüfen ("View Native Query")
- Ich weiß welche M-Code Funktionen Folding brechen
- Ich platziere Filter am Anfang (nicht am Ende!)
- Ich selektiere Spalten früh
- Ich aggregiere VOR Pivot/Unpivot
- Ich kann Performance-Probleme diagnostizieren
- Ich optimiere Power Query für Production Use
Mit Performance-Optimierungen wird Power Query zur Turbine! 🚀⚡