SQL Server Performance ist ein umfassendes Thema, das viele Aspekte der Verwaltung und Optimierung eines SQL Server-Systems umfasst.
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.
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 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 (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.
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.
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 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 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.
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 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.
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:
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.
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
Ein Feature, das verwendet wird, um CPU-, Arbeitsspeicher- und I/O-Ressourcen zwischen verschiedenen Workloads zu steuern und zu priorisieren.
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.