Warum ich IQP ernst nehme
Als Datenmensch willst Du keine Zeit mit unnötigen Indexspielchen verschwenden.
Du willst, dass die Engine Deine Abfragen versteht – auch wenn die Statistiken mal nicht ganz aktuell sind.
SQL Server 2025 macht hier einen groĂen Sprung.
Weniger Handarbeit, bessere Laufzeiten, stabilere PlÀne.
Was ist Intelligent Query Processing?
Eine Sammlung smarter Optimierungen, die die Engine automatisch anwendet.
Du musst nichts umstellen.
Du musst nur auf SQL Server 2025 sein und kompatibilitÀtslevel 160+ setzen:
ALTER DATABASE [meinDB] SET COMPATIBILITY_LEVEL = 160;
Was ist neu in 2025?
Verbesserte adaptive Join-Auswahl
- Nested Loop vs. Hash Join wird besser eingeschĂ€tzt – auch bei kleinen Rowsets.
- LĂ€uft jetzt auch bei mehrstufigen JOINs.
Batch Mode auf Rowstore weiter optimiert
- Jetzt auch bei Aggregationen ohne GROUP BY
- Weniger Sort-Spills
Feedback Mechanismen reifen
- Cardinality Feedback merkt sich wiederkehrende Probleme
- Plan Feedback wird persistenter – auch nach Neustarts
1. Adaptive Joins in Aktion
FrĂŒher: Du musstest den besten Join-Typ „erraten“.
Jetzt:
SELECT *
FROM kunden k
JOIN bestellungen b ON k.kundennr = b.kundennr
WHERE b.status = 'offen';
Der Optimizer entscheidet je nach geschÀtzter UND tatsÀchlicher Zeilenanzahl.
Du siehst es im AusfĂŒhrungsplan als:
Adaptive Join (If <= 100 Rows: Nested Loop, else: Hash Join)
2. Batch Mode auf Rowstore
FrĂŒher nur fĂŒr Columnstore, jetzt auch fĂŒr klassische Tabellen.
Beispiel:
SELECT ort, COUNT(*) AS anzahl
FROM kunden
WHERE aktiv = 1
GROUP BY ort;
Wenn kunden
eine groĂe Rowstore-Tabelle ist, bekommst Du trotzdem Batch Mode.
Das spart CPU und IO.
Gut messbar bei >100.000 Zeilen.
3. Memory Grant Feedback
Kennst Du die Situation?
SELECT * FROM artikel WHERE bezeichnung LIKE '%filter%';
Einmal lĂ€uft’s in 0.1 Sekunden.
Dann auf einmal 8 Sekunden wegen Sort-Spill.
Jetzt merkt sich der Server den Speicherbedarf und passt den Plan automatisch an.
SELECT * FROM sys.dm_exec_query_memory_grants
WHERE ideal_memory_kb > granted_memory_kb;
Hilft bei instabilen Reports und Excel-Auswertungen.
4. Plan Correction & Persistenz
Neu in 2025:
Fehlgeschlagene PlĂ€ne können automatisch ersetzt werden – dauerhaft.
SELECT * FROM sys.query_store_plan_feedback;
Du kannst das Feedback jetzt auch fĂŒr einzelne Abfragen explizit deaktivieren:
ALTER DATABASE SCOPED CONFIGURATION
SET QUERY_STORE_FEEDBACK = OFF;
Oder in DEV-Umgebungen gezielt simulieren.
5. Realistische Cardinality Estimation
Besonders bei OR
-Bedingungen oder komplexen IN (...)
:
SELECT * FROM kunden
WHERE ort IN ('Hamburg', 'LĂŒbeck') OR status = 'neu';
SQL Server 2025 kombiniert jetzt Wahrscheinlichkeiten besser.
Weniger 1 Zeile oder 1 Million. Mehr RealitÀt.
6. Neue DMV zur Analyse
Neu in 2025:
SELECT *
FROM sys.dm_exec_query_feedback_stats
WHERE database_id = DB_ID();
Hier siehst Du, welche Queries wie oft korrigiert wurden – und ob es was gebracht hat.
7. Mein pragmatischer Ansatz
- Ich prĂŒfe neue Systeme zuerst mit
Compatibility_Level = 160
- Ich schaue in die
sys.query_store_query_text
, welche Abfragen mehrfach auftauchen - Ich deaktiviere IQP selektiv nur bei SonderfÀllen (z. B. Replikation mit festen PlÀnen)
- Ich nutze Plan-Guide nur noch selten
SQL Server 2025 denkt mit.
Wenn Du ihm das zutraust, sparst Du viel manuelle Indexpflege.
Gerade in KMU-Umgebungen mit wechselnden Datenmengen lohnt sich IQP richtig.
Keine Antworten