it-praxisportal/courses/sql/13_indizes_und_query_optimierung
Alex Mueller 2571cb8847 feat(ux): responsive kurs-sidebar und kapitel-drawer für alle 13 kurse & web-ide
- Dynamic Sidebar mit window.COURSES_MANIFEST für 13 Kurse (216 Kapitel)
- Kurswechsler Dropdown mit Direktnavigation
- Fortschrittsanzeige mit Solved-Checkmarks (✓) aus localStorage
- Responsive Off-Canvas Drawer mit Floating Action Button (☰ Kapitel) & Backdrop auf Mobile/Tablets
- Web-IDE Topbar Drawer-Button (☰ Kapitel) für unterbrechungsfreien Vollbild-Editor
- Saubere Bereinigung redundanter statischer Legacy-Sidebars
2026-09-12 13:49:46 +02:00
..
aufgabe.sql Vollständige Umsetzung von Phase A bis C: (1) SQL & Data Analytics Master (16 Module), (2) HTML5 & Modern CSS3 (16 Module) und (3) Go Cloud Microservices (16 Module). Plattform umfasst nun 131 Module über 7 Sprachen 2026-08-30 13:10:38 +02:00
index.html feat(ux): responsive kurs-sidebar und kapitel-drawer für alle 13 kurse & web-ide 2026-09-12 13:49:46 +02:00
musterloesung.sql Vollständige Umsetzung von Phase A bis C: (1) SQL & Data Analytics Master (16 Module), (2) HTML5 & Modern CSS3 (16 Module) und (3) Go Cloud Microservices (16 Module). Plattform umfasst nun 131 Module über 7 Sprachen 2026-08-30 13:10:38 +02:00
README.md Vollständige Umsetzung von Phase A bis C: (1) SQL & Data Analytics Master (16 Module), (2) HTML5 & Modern CSS3 (16 Module) und (3) Go Cloud Microservices (16 Module). Plattform umfasst nun 131 Module über 7 Sprachen 2026-08-30 13:10:38 +02:00
test_aufgabe.sql Vollständige Umsetzung von Phase A bis C: (1) SQL & Data Analytics Master (16 Module), (2) HTML5 & Modern CSS3 (16 Module) und (3) Go Cloud Microservices (16 Module). Plattform umfasst nun 131 Module über 7 Sprachen 2026-08-30 13:10:38 +02:00

SQL 13: B-Tree Indizes & Query-Optimierung ⚡🔍

Willkommen zu Modul 13 (Lehrpfad 4: Performance, Transaktionen & Analytics Master)! Als Data Engineer und SQL-Architekt ist Performance deine wichtigste Währung. In diesem Modul lernst du, wie der Query Optimizer von relationalen Datenbanken arbeitet und wie du mit gezielten B-Tree Indizes Abfragezeiten von Sekunden auf Millisekunden senkst.


🎯 Lernziele

  1. B-Tree Indizes: Erstellen von Single-, Multi-Column- und Unique-Indizes.
  2. Leftmost-Prefix Regel: Verstehen, wie Composite Indizes (col_a, col_b) funktionieren und wann sie greifen.
  3. Partial Indizes: Ressourcenschonende Indizes mit WHERE-Bedingung für Hot-Data.
  4. EXPLAIN QUERY PLAN: Analysieren und Interpretieren von Ausführungsplänen (SCAN TABLE vs. SEARCH TABLE USING INDEX).
  5. SARGability: Schreiben indexfreundlicher Filterbedingungen ohne Funktionsaufrufe auf indexierten Spalten.

💡 Was bedeutet SARGable?

SARGable steht für Search Argument Able. Wenn du in der WHERE-Bedingung eine Funktion auf die indexierte Spalte anwendest, kann die Datenbank den B-Tree Index nicht nutzen und muss einen langsamen Table Scan durchführen:

-- ❌ NON-SARGABLE (Index auf 'bestell_datum' wird ignoriert -> SCAN TABLE):
SELECT * FROM bestellungen WHERE strftime('%Y', bestell_datum) = '2024';

-- ✅ SARGABLE (Index wird direkt genutzt -> SEARCH TABLE USING INDEX):
SELECT * FROM bestellungen WHERE bestell_datum >= '2024-01-01' AND bestell_datum < '2025-01-01';

🚀 Aufgabenstellung (aufgabe.sql)

  1. TODO 1: Unique & Composite Indizes – Erstelle Indizes auf kunden(email) und artikel(kategorie_id, preis DESC).
  2. TODO 2: Partieller Index – Erstelle einen Index für aktive Kunden (WHERE status = 'aktiv').
  3. TODO 3: Abfrageplan-Analyse – Führe EXPLAIN QUERY PLAN für Schlüsselabfragen aus.
  4. TODO 4: SARGable Refactoring – Optimiere eine Zeitbereichs-Abfrage zur vollen Ausnutzung des Datums-Index.

🧪 Tests ausführen

Validierung erfolgt über test_aufgabe.sql.