Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Lesedauer 4 Min.

DBAs tunen die falsche Abfrage

Thorsten Strauß arbeitet seit Jahren mit SQL Server-Systemen unter Last – und beobachtet immer wieder denselben Fehler: Der DBA schaut auf die Query, die am längsten braucht. Dabei ist die oft nur das Opfer, nicht der Täter.

Wer ein Performance-Problem auf dem SQL Server hat, greift oft zuerst zum Query Store. Verständlich – das Tool ist gut, visuell aufgeräumt, zeigt Ressourcenverbrauch auf der Zeitachse. Aber genau hier fängt das Problem an. Der Query Store zeigt, welche Abfrage gerade die meiste CPU oder das meiste Memory zieht. Was er nicht zeigt: ob diese Abfrage wirklich schuld ist.

Thorsten Strauß bringt das an einem Beispiel auf den Punkt, das jeder DBA kennt, aber nicht jeder richtig deutet: Locking und Blocking. Eine Abfrage verändert einen Datensatz und hält dabei einen exklusiven Lock. Eine zweite Abfrage will denselben Datensatz lesen – und wartet. Im Query Store sieht das so aus, als wäre die wartende Abfrage das Problem, weil ihre Execution-Time durch die Wartezeit in die Höhe schießt. Die eigentliche Ursache, nämlich die schreibende Abfrage, läuft unauffällig durch. Wer jetzt die lesende Query tuned, hat Zeit verschwendet.

Bevor man also überhaupt in den Query Store schaut, empfiehlt Thorsten den Blick auf die DMVs. Dynamic Management Views sammeln seit dem letzten SQL-Server-Neustart Metadaten und Wartestatistiken – und die zeigen einem erfahrenen DBA schnell, ob ein dominanter Wartetyp vom Typ LCK auf Locking-Probleme hindeutet, ob eine offene Transaktion im Hintergrund sitzt, oder ob die TempDB bei Optimistic Concurrency Control gerade zum Flaschenhals wird. Erst wenn die DMVs eine Richtung vorgeben, macht es Sinn, gezielter mit Extended Events zu tracken.

Extended Events sind dabei nicht einfach ein Ersatz für den alten SQL Server Profiler – sie sind eine andere Kategorie. Der Profiler erzeugt selbst CPU-Last auf dem System, das er analysieren soll. Auf einem Server, der ohnehin schon knirscht, ist das kontraproduktiv. Extended Events sind deutlich leichter, gehen tiefer und lassen sich präzise auf bestimmte Event-Typen eingrenzen. Trotzdem: Strauß sieht noch immer Umgebungen, in denen der Profiler im Einsatz ist – obwohl Microsoft ihn seit Jahren als Deprecated markiert hat.

Ein weiteres Muster, das Strauß beschäftigt, ist der reflexartige Griff zu den Automatisierungsfeatures im SQL Server. Plan Regression als Beispiel: Der Query Store zeigt, dass eine Abfrage jetzt einen schlechteren Plan verwendet als früher. Microsoft empfiehlt, den besseren Plan zu forcieren. Klingt sinnvoll – ist aber eine Falle, wenn die Abfrage je nach übergebenem Parameter unterschiedliche Pläne braucht. Wer jetzt einen Plan fest einfriert, verbaut sich die Möglichkeit, das eigentliche Problem zu lösen, zum Beispiel durch einen passenden Index. Der forcierte Plan läuft dann auch dann suboptimal weiter, wenn der Index längst vorhanden wäre.

Das zieht sich durch: Features sind dann großartig, wenn man versteht, was sie tun. Und was sie nicht tun. Gerade bei unpredictable Workload Spikes – dem Black-Friday-Problem, das sich nicht wegtunen lässt – hilft kein Feature der Welt, wenn die Grundlage fehlt. Was hilft: eine Testinstanz mit simulierter Zufallsworkload, auf der man Blockaden und Ressourcenkonflikte sichtbar macht, bevor sie im Produktivbetrieb zuschlagen. Nicht eine einzelne Abfrage schnell machen. Die Gesamtauslastung der Workload senken.

Das ist, kurz gefasst, Thorstens Credo: Nicht die Query tunen. Die Workload tunen.

Thorsten Strauß hält drei Sessions auf der DWX 2026, 29. Juni bis 2. Juli 2026, Mannheim. https://www.developer-world.de/dwx

 

Thorsten Strauß (MVP) ist CEO von inside-sqlserver und Principal Microsoft SQL Consultant beim Sarpedon Quality Lab. Als vielfach zertifizierter Microsoft-Experte hat er sich auf Azure DevOps, SQL-Server-Performance-Optimierung sowie die Entwicklung skalierbarer SQL-Server- und Azure-SQL-Lösungen spezialisiert.

Mehr als 320 technische Sessions hat Thorsten bislang auf nationalen und internationalen Konferenzen und User Groups gehalten. Seit 2018 wird er jährlich als Microsoft Most Valuable Professional für die Data Platform ausgezeichnet – seit 2025 auch für Developer Technologies. Er ist Microsoft Certified Trainer und steht seit drei Jahren in Folge auf der Top-Speaker-Liste von Sessionize.

 

PS: Bei der Aufnahme des Interviews war uns der Geist des Streaming nicht wohlgesonnen. Das hakelnde Video mussten wir deshalb durch Fotos ersetzen. Wir bitten um Verständnis.

Neueste Beiträge

DW | Vertrauen ist gut, Kontrolle ist... kompliziert - Interview
KI-generierter Code wird schneller – aber auch besser? Auf der Infinite AI Conference 2026 sprach David Tielke mit Dr.-Ing. Dehla Sokenou, Test- und Qualitätsmanagerin sowie Softwarearchitektin bei der WPS, über die Zukunft der Qualitätssicherung im Zeitalter generativer KI.
15. Jul 2026
Datenbanken und externe Dienste - Health Checks in ASP.NET richtig nutzen, Teil 2
Erst bei Datenbanken, Caches und externen APIs zeigt sich, wie belastbar ein Health Check wirklich ist. Von einfachen Statusmeldungen ausgehend erweitern wir die Möglichkeiten bis hin zu Prüfungen, die Abhängigkeiten sichtbar machen und damit helfen, Ausfälle besser einzuordnen.
3 Minuten

Das könnte Dich auch interessieren

Volltextsuche mit SQLite: FTS5 und Fuzzy Search - SQLite für .NET-Entwickler, Teil 4
Hochperformante Suche ohne externe Suchmaschine? Wie man mit der in SQLite eingebauten Volltextsuch-Engine FTS5 eine effiziente Suche mit Tippfehlertoleranz implementiert – und in welchen Fällen Elasticsearch doch die bessere Wahl ist.
6 Minuten
22. Apr 2026
RAG mit SQL Server 2025: KI-Antworten mit Kontext - SQL Server 2025 und Microsoft Azure AI, Teil 1
RAG als Architekturpattern verbindet Sprachmodelle mit der realen Wissensbasis eines Unternehmens. Seine pragmatische Umsetzung im Microsoft-Stack: Azure OpenAI für Sprache, SQL Server 2025 und Azure AI Search für Semantik und .NET 10 für Integration und Orchestrierung.
6 Minuten
29. Jun 2026
libSQL und Turso: SQLite für verteilte Systeme - SQLite für .NET-Entwickler, Teil 3
libSQL und Turso lösen die größte Einschränkung von SQLite: die Bindung an eine einzelne Instanz.
6 Minuten
15. Apr 2026
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige