SQL Server Performance ist ein umfassendes Thema, das viele Aspekte der Verwaltung und Optimierung eines SQL Server-Systems umfasst.

Glossar: SQL Server Performance

Hier sind die wichtigsten Begriffe und Konzepte, die im Zusammenhang mit der SQL Server-Performance eine Rolle spielen:

Performance Workshop

Indexes (Indizes)

Clustered Index

Ein Index, der die physische Reihenfolge der Datensätze in einer Tabelle bestimmt. Eine Tabelle kann nur einen Clustered Index haben.

Non-Clustered Index

Ein Index, der die physische Reihenfolge der Daten nicht beeinflusst, sondern Verweise auf die Daten enthält. Eine Tabelle kann mehrere Non-Clustered Indizes haben.

Index Fragmentation:

Fragmentierung tritt auf, wenn Daten auf der Festplatte nicht zusammenhängend gespeichert werden. Dies kann die Performance beeinträchtigen.

Execution Plan

Actual Execution Plan

Zeigt, wie SQL Server eine Abfrage tatsächlich ausgeführt hat.

Estimated Execution Plan

Zeigt, wie SQL Server plant, eine Abfrage auszuführen, ohne sie tatsächlich auszuführen.

Cost-Based Optimization

Der SQL Server wählt den effizientesten Ausführungsplan auf der Grundlage von Schätzungen der Ressourcenanforderungen aus

Query Optimization (Abfrageoptimierung)

Query Execution Time

Die Zeit, die benötigt wird, um eine Abfrage auszuführen.

Query Tuning

Der Prozess der Optimierung von SQL-Abfragen, um deren Leistung zu verbessern. Das kann durch Indizes, Änderungen an der Abfrage selbst oder durch Änderungen an der zugrundeliegenden Datenbankstruktur geschehen.

Join Types

Verschiedene Arten von Joins (z.B. Inner Join, Outer Join, Hash Join, Merge Join, Nested Loop Join) können sich auf die Performance auswirken.

Locking, Blocking, Deadlocks

Locking (Sperren)

Wenn eine Abfrage auf Daten zugreift, sperrt SQL Server diese Daten, um sie vor gleichzeitigen Änderungen durch andere Abfragen zu schützen.

Blocking (Blockierung)

Tritt auf, wenn eine Abfrage auf eine gesperrte Ressource zugreifen muss, aber warten muss, bis die Sperre freigegeben wird.

Deadlock

Eine Situation, in der zwei oder mehr Abfragen gegenseitig gesperrte Ressourcen benötigen, was dazu führt, dass keine der Abfragen fortfahren kann.

I/O Performance

Disk I/O (Ein-/Ausgabe)

Die Leistung der Festplatten, auf denen die SQL-Daten gespeichert sind, ist ein entscheidender Faktor für die Gesamtleistung.

Buffer Cache

Ein Bereich im Arbeitsspeicher, in dem SQL Server kürzlich gelesene Daten speichert, um zukünftige Zugriffe zu beschleunigen.

Page Life Expectancy

Die Zeit, die Seiten im Pufferpool verbleiben, bevor sie durch neue Seiten ersetzt werden. Eine niedrige Page Life Expectancy kann auf einen überlasteten Speicher hinweisen.

Memory (Speicher)

Buffer Pool

Der Speicherbereich, den SQL Server für das Caching von Datenbankseiten verwendet.

Memory Grants

SQL Server reserviert Arbeitsspeicher für Abfragen, insbesondere für Sortierungen und Joins. Unzureichende Speicherzuweisungen können die Leistung beeinträchtigen.

CPU Usage

CPU Bottleneck

Tritt auf, wenn die CPU durch Abfragen überlastet ist, was zu einer schlechten Performance führt.

Parallelism (Parallelität)

SQL Server kann eine Abfrage in mehrere Teile zerlegen und diese gleichzeitig auf mehreren CPU-Kernen ausführen. Dies wird durch den MAXDOP (Maximum Degree of Parallelism) konfiguriert.

Cost Threshold for Parallelism

Der Schwellenwert, ab wann SQL Server eine Abfrage parallel ausführt.

Wait Types

Wait Time

Die Zeit, die SQL Server-Prozesse auf Ressourcen warten müssen, bevor sie fortfahren können.

CXPACKET Waits

Diese Art von Wartezeiten tritt bei der parallelen Ausführung von Abfragen auf und kann auf ineffiziente Parallelität hinweisen.

LATCH, PAGEIOLATCH

Wartezeiten, die auf Speicher- oder I/O-Probleme hindeuten können.

Transaction Log

Write-Ahead Logging (WAL)

SQL Server schreibt alle Transaktionen zuerst in das Transaktionsprotokoll, bevor die Änderungen auf die Datenbank geschrieben werden.

Log Flushes

Die Aktion, bei der die im Speicher befindlichen Log-Einträge auf die Festplatte geschrieben werden. Häufige oder langsame Log Flushes können die Performance beeinträchtigen.

TempDB

TempDB Usage

TempDB ist eine globale Ressource, die von allen Benutzern und Abfragen verwendet wird. Intensive Nutzung von TempDB, wie durch Sortierungen oder temporäre Tabellen, kann die Performance beeinträchtigen.

TempDB Contention

Probleme, die auftreten, wenn mehrere Prozesse gleichzeitig auf TempDB zugreifen und dabei um dieselben Ressourcen konkurrieren.

Database Maintenance

Index Rebuilds/Reorganize

Regelmäßige Wartungsarbeiten zur Neuorganisation oder zum Wiederaufbau von Indizes, um die Fragmentierung zu verringern.

Statistics Update

SQL Server verwendet Statistiken, um zu entscheiden, wie Abfragen ausgeführt werden. Diese Statistiken müssen regelmäßig aktualisiert werden, um genaue Schätzungen zu gewährleisten.

Query Store

Query Store:

Ein Feature, das SQL Server zur Überwachung von Abfragen und deren Performance verwendet. Es speichert historische Abfragepläne und deren Leistungskennzahlen.

Plan Forcing

Mit dem Query Store kann ein bestimmter Ausführungsplan für eine Abfrage erzwungen werden, um die Leistung zu stabilisieren.

Concurrency

Isolation Levels

SQL Server bietet verschiedene Isolationsstufen (z.B. Read Committed, Serializable, Snapshot), die das Verhalten von Transaktionen hinsichtlich des Zugriffs auf freigegebene Daten steuern. Höhere Isolationsstufen bieten mehr Konsistenz, aber auf Kosten der Performance.

Resource Governor

Resource Governor

Ein Feature, das verwendet wird, um CPU-, Arbeitsspeicher- und I/O-Ressourcen zwischen verschiedenen Workloads zu steuern und zu priorisieren.

Latency

Network Latency

Verzögerungen, die durch langsame Netzwerke verursacht werden, wenn SQL Server auf entfernte Systeme oder Speicher zugreifen muss.

Disk Latency

Verzögerungen, die auftreten, wenn Daten auf der Festplatte nicht schnell genug gelesen oder geschrieben werden können.

Sprechen Sie mit uns!

Los geht's