Consulting, Beratung
Indexoptimierung bei SQL Server – Leitfaden für IT-Verantwortliche und DBAsEinleitung: Wozu dienen Indizes im SQL Server?
Indizes sind essenziell, um SQL Server Abfragen zu beschleunigen und die Datenbank-Performance zu verbessern. Ein Index funktioniert ähnlich wie das Inhaltsverzeichnis eines Buches: Anstatt eine Tabelle vollständig zu durchsuchen, kann die Datenbank über den Index direkt zur gesuchten Stelle springen. Ohne Indizes müsste SQL Server bei jeder Anfrage alle Datensätze durchgehen, was vor allem bei großen Tabellen zu enormen Laufzeiten führt. Mit den richtigen Indizes hingegen lassen sich Abfragen in Bruchteilen der Zeit erledigen – man kann also die SQL-Performance durch Indizes verbessern. IT-Verantwortliche und Datenbankadministratoren sollten daher verstehen, wozu Indizes dienen und wie man einen SQL Server Index optimieren kann, um die maximale Leistung aus der Datenbank herauszuholen.
Index-Typen im Überblick: Clustered, Non-Clustered, Columnstore, XML und mehr
SQL Server bietet verschiedene Index-Typen, die jeweils für bestimmte Einsatzzwecke optimiert sind. Die wichtigsten Indexarten sind:
- Clustered Index (geclusterter Index): Ein Clustered Index sortiert die tatsächlichen Datenzeilen einer Tabelle physisch anhand des Index-Schlüssels. Es gibt pro Tabelle maximal einen Clustered Index, da er die physische Reihenfolge der Datensätze bestimmt (ähnlich der alphabetischen Sortierung in einem Wörterbuch). Häufig wird der Primärschlüssel als Clustered Index verwendet.
- Non-Clustered Index (nicht-geclusterter Index): Ein Non-Clustered Index legt eine separate, sortierte Datenstruktur an, die Zeiger auf die eigentlichen Tabellendaten enthält. Er funktioniert wie das Stichwortverzeichnis am Ende eines Buches – die Indexeinträge sind sortiert und verweisen auf die Stellen in der Tabelle, an denen die entsprechenden Daten zu finden sind. Eine Tabelle kann viele Non-Clustered Indizes haben, um verschiedene Abfragekriterien zu beschleunigen.
- Columnstore-Index (Spaltenindex): Dieser Indextyp speichert Daten spaltenweise statt zeilenweise. Columnstore-Indizes wurden für Data-Warehouse- und Analytics-Szenarien entwickelt. Sie bieten hohe Abfrageperformance bei umfangreichen Analysen, da sie Daten stark komprimieren und ganze Spalten sehr effizient durchsuchen können. Allerdings eignen sich Columnstore-Indizes weniger für OLTP-Workloads mit vielen einzelnen Transaktionen, da Einfüge- und Update-Operationen aufwendiger sind.
- XML-Index: Für Tabellen, die XML-Daten in einer Spalte speichern, bietet SQL Server XML-Indizes. Ein XML-Index erleichtert Suchen innerhalb von XML-Strukturen (z. B. nach bestimmten XML-Knoten oder Attributen) erheblich. Allerdings ist die Indexerstellung hier sehr speicherintensiv, und XML-Indizes sollten nur angelegt werden, wenn wirklich häufig in XML-Spalten gesucht wird.
- Volltextindex: Volltextindizes ermöglichen performante Suchanfragen nach Wörtern oder Phrasen innerhalb von Textfeldern (z. B.
VARCHAR(MAX)oderTEXTFeldern). Sie kommen zum Einsatz, wenn man beispielsweise eine Suche über Dokumententexte oder Artikelbeschreibungen realisieren will, die über das reine LIKE-Muster hinausgeht. Volltextindizes werden außerhalb der klassischen B-Baum-Struktur verwaltet und eignen sich speziell für sprachliche Suchen, haben jedoch ihren eigenen Wartungsaufwand.
Hinweis: Neben diesen gibt es noch weitere spezielle Indexformen (z. B. räumliche Indizes für Geodaten oder optimierte Nicht-Persistente Indizes für in-Memory Tabellen), die jedoch im Alltag seltener vorkommen. Für die meisten Datenbanken sind Clustered und Non-Clustered Indizes die zentralen Werkzeuge der Optimierung, ergänzt durch Columnstore-Indizes in BI-Szenarien und spezielle Indizes wie XML- oder Volltextindizes für entsprechende Anforderungen.
Vor- und Nachteile der verschiedenen Indexarten
Indizes bieten große Vorteile, bringen aber auch gewisse Nachteile und administrativen Aufwand mit sich. Im Grunde bedeutet jeder Index einen Trade-off zwischen Performance und Ressourcenverbrauch:
Vorteile von Indizes:
- Beschleunigung von Abfragen: Der Hauptvorteil eines Indexes ist die drastische Reduzierung der Datensätze, die SQL Server bei einer Abfrage durchsuchen muss. Dank Indizes können Selektionskriterien (WHERE-Bedingungen) viel schneller abgearbeitet werden, was die Abfragezeiten deutlich verkürzt. Insbesondere Select-Statements und Join-Operationen profitieren von passenden Indizes, da sie gezielt die relevanten Datenseiten ansteuern können statt sequentiell alles zu lesen.
- Geringere Last auf CPU und I/O: Durch schnellere Suchvorgänge sinkt die Prozessorlast pro Abfrage, und es fallen weniger I/O-Operationen (Lesevorgänge von der Festplatte) an. Das heißt, ein gut indiziertes System skaliert besser unter hoher Last, da weniger physische Datenzugriffe nötig sind.
- Erzwingung von Eindeutigkeit: Bestimmte Indexarten (z. B. Unique-Index, meist im Rahmen eines Primary Key) stellen sicher, dass keine doppelten Werte in einer Spalte vorkommen. Dies unterstützt die Datenintegrität und kann gleichzeitig Abfragen beschleunigen, die auf eindeutige Werte zugreifen.
Nachteile und Herausforderungen:
- Zusätzlicher Speicherbedarf: Jeder Index benötigt Speicherplatz in der Datenbank. Bei vielen und großen Indizes wächst der Speicherbedarf erheblich. Man bezahlt die Abfrage-Beschleunigung also mit zusätzlicher Speicherauslastung auf Festplatte und im RAM (für gecachte Indexseiten).
- Wartungsaufwand bei Datenänderungen: Ändert sich der Datenbestand einer Tabelle (durch INSERT, UPDATE oder DELETE), müssen auch alle betroffenen Indizes aktualisiert werden. Das Einfügen neuer Zeilen etwa kann zu Seitenaufteilungen führen, wenn eine Indexseite voll ist – der Index wird dadurch größer und potenziell fragmentiert. Viele Indizes können Schreiboperationen (DML) also verlangsamen, da jede Änderung an den Daten mehrere Indexstrukturen mitpflegen muss.
- Abwägung nötig (Über-Indexierung): Zu viele Indizes können mehr schaden als nützen. Jeder zusätzliche Index ist ein Kompromiss: Er verbessert bestimmte Abfragen, verschlechtert aber möglicherweise die Performance von Änderungsbefehlen und verbraucht Ressourcen. Die Grundregel lautet: „So wenig wie möglich, so viel wie nötig“ – Indizes sollten nur in dem Umfang erstellt werden, wie sie die benötigten Abfragen tatsächlich unterstützen. Eine Über-Indexierung (zu viele unnötige Indizes) belastet das System, ohne einen echten Nutzen zu bringen.
Kurz gesagt bieten Indizes einen enormen Geschwindigkeitsvorteil für Lese-Abfragen, erfordern dafür aber mehr Speicher und regelmäßige Pflege. Im nächsten Schritt betrachten wir, warum diese Indexpflege – insbesondere die Indexoptimierung – regelmäßig notwendig ist.
Warum regelmäßige Indexoptimierung notwendig ist
Indexstrukturen unterliegen im laufenden Betrieb einer Datenbank einer natürlichen Abnutzung in Form von Fragmentierung. Fragmentierung bedeutet, dass die logische Reihenfolge der Daten im Index nicht mehr der physischen Reihenfolge auf der Platte entspricht – Daten sind „verstreut“ abgelegt. Dies passiert vor allem durch wiederholte Einfüge- und Löschvorgänge: Neue Daten passen nicht in die vorhandene Sortierung und werden aufgesplittet, gelöschte Zeilen hinterlassen Lücken. Die Folge sind unzusammenhängende Seiten im Index, die mehr Leseoperationen erfordern, um eine Abfrage zu erfüllen. Bei Bereichsabfragen oder vollständigen Index-Scans können stark fragmentierte Indizes die Performance dramatisch verschlechtern, da anstelle einiger weniger großer Lesevorgänge plötzlich sehr viele kleine, zufällige Lesezugriffe nötig werden.
Neben der reinen Fragmentierung nimmt oft auch die Seitendichte (Füllgrad der Indexseiten) ab, was bedeutet, dass Speicherplatz ineffizient genutzt wird. Eine geringe Seitendichte führt dazu, dass für dieselbe Datenmenge mehr Seiten gelesen werden müssen, was wiederum I/O-Aufwand und Speicherverbrauch erhöht.
Für IT-Verantwortliche bedeutet dies: Ohne regelmäßige Index-Optimierung verliert das System nach und nach an Geschwindigkeit. In der Praxis kann man beobachten, dass Datenbanken mit stark fragmentierten Indexen deutlich längere Antwortzeiten aufweisen. Fragmentierte Indizes sind einer der häufigsten Gründe, warum die Abfrage-Performance im Laufe der Zeit spürbar nachlässt. Wenn also Berichte eintreffen, dass Abfragen immer länger dauern oder die Anwendung „langsamer geworden“ ist, ist es höchste Zeit, die Indizes zu überprüfen.
Index-Fragmentierung erkennen: Zum Glück stellt SQL Server Werkzeuge bereit, um den Zustand der Indizes zu analysieren. Eine zentrale Rolle spielt die Dynamic Management Function sys.dm_db_index_physical_stats. Mit ihr kann man den Fragmentierungsgrad eines Index ermitteln. Ein typisches Vorgehen ist, alle Indizes einer Datenbank auszuwerten und nach ihrem avg_fragmentation_in_percent zu sortieren. Übersteigt der Fragmentierungswert einen bestimmten Schwellenwert, besteht Handlungsbedarf. Als Faustregel gilt: eine durchschnittliche Fragmentierung von über 30 % ist kritisch und sollte behoben werden. Moderat fragmentierte Indizes (z. B. im Bereich 10–30 %) können die Performance ebenfalls beeinträchtigen, wenn auch nicht so dramatisch wie völlig fragmentierte. Wichtig ist außerdem ein differenzierter Ansatz: Nicht jeder Index benötigt gleich häufige Pflege – stark genutzte und wichtige Indizes verdienen mehr Aufmerksamkeit als solche, die selten in Abfragen verwendet werden.
Zusammengefasst ist regelmäßige Indexoptimierung notwendig, um Performance-Verlust durch Fragmentierung vorzubeugen. Sie sorgt dafür, dass die Datenbank ihre gewohnt schnellen Antwortzeiten beibehält und Hardware-Ressourcen effizient nutzt.
Methoden zur Indexoptimierung: Rebuild vs. Reorganize und Fragmentierungsanalyse
Zur Indexoptimierung stellt SQL Server im Wesentlichen zwei Hauptmethoden bereit: Index Rebuild (Neuaufbau) und Index Reorganize (Neuorganisation). Beide zielen darauf ab, Fragmentierung zu reduzieren, unterscheiden sich jedoch in Vorgehensweise, Ressourcenverbrauch und Anwendungsfall. Oft steht ein DBA vor der Frage: „Index Rebuild oder Reorganize – wann welche Methode?“ Diese Entscheidung richtet sich vor allem nach dem Fragmentierungsgrad des Index und den zur Verfügung stehenden Wartungsfenstern.
- Index Rebuild (Index neu erstellen): Beim Rebuild wird der Index vollständig neu aufgebaut. Intern bedeutet dies, der alte Index wird entfernt und basierend auf den aktuellen Tabellendaten komplett neu erstellt. Dabei werden alle Seiten neu geschrieben, Fragmentierung wird vollständig beseitigt und der Index erreicht wieder optimale Seitendichte. Ein Rebuild kann auch Speicherplatz zurückgewinnen, den fragmentierte oder gelöschte Seiten zuvor belegt hatten. Allerdings ist diese Methode ressourcenintensiv – sie verbraucht spürbar CPU, I/O und Arbeitsspeicher und kann je nach Indexgröße etwas dauern. Standardmäßig ist ein Index Rebuild eine offline-Operation (die Tabelle ist währenddessen exklusiv gesperrt), doch in höheren SQL Server Editionen kann man Rebuilds online durchführen, sodass Lesevorgänge weiter möglich sind. Kurz gesagt: Rebuild ist die gründlichste Form der Indexpflege, aber auch die aufwendigste.
- Index Reorganize (Index neu organisieren): Die Reorganisation eines Indexes geht schonender mit den Ressourcen um. Hierbei wird der Index in-place defragmentiert – SQL Server durchläuft die bestehenden Indexseiten und sortiert die Einträge physisch neu, wo es nötig ist. Es werden keine ganzen Indexobjekte neu angelegt, sondern lediglich die vorhandenen Seiten umsortiert und zusammengefügt. Ein Reorganize läuft dadurch inkrementell und hält die Sperren nur kurz auf einzelnen Seiten; die Tabelle bleibt für andere Operationen weitgehend verfügbar. Diese Methode ist langsamer als Rebuild (weil sie sequentiell Seite für Seite arbeitet), behebt Fragmentierung aber nur bis zu einem gewissen Grad. Sie ist ideal, um leichte bis moderate Fragmentierung zu bereinigen, ohne viel Overhead zu verursachen.
Rebuild vs. Reorganize – wann welche? Allgemein empfiehlt sich ein Reorganize für Indizes mit mäßiger Fragmentierung und ein Rebuild für solche mit starker Fragmentierung. In der Praxis hat sich etabliert, bei einer Fragmentierung zwischen etwa 10 % und 30 % eine Reorganisation durchzuführen und bei Werten deutlich darüber einen Rebuild anzustoßen. Liegt die Fragmentierung unter ~10 %, kann man meistens noch darauf verzichten, da der Nutzen einer Optimierung dann gering ist. Natürlich sind diese Schwellenwerte Richtwerte – je nach Datenbank können andere Grenzwerte sinnvoll sein. Entscheidend ist, regelmäßig zu überwachen, wie fragmentiert die wichtigen Indizes sind (siehe Monitoring unten), um rechtzeitig die passende Maßnahme zu ergreifen.
Tipp: Ein Index-Rebuild aktualisiert intern auch die Statistiken des Index (weil der Index komplett neu erstellt wird, werden auch die Verteilungsinformationen neu berechnet). Ein Reorganize hingegen ändert die Statistiken nicht. Daher sollte man nach vielen Reorganize-Vorgängen ggf. separat die Statistik aktualisieren oder periodisch einen Rebuild einplanen, um stets aktuelle Statistiken für den Abfrageoptimierer zu haben.
Neben Rebuild und Reorganize ist die Fragmentierungsanalyse vorab wichtig, wie oben erwähnt. Dazu nutzt man am besten sys.dm_db_index_physical_stats in Kombination mit System-Views wie sys.indexes, um eine Liste aller Indizes mit ihrem Fragmentierungsgrad zu erhalten. So identifiziert man effizient, welche Indizes optimiert werden müssen, und kann gezielt vorgehen (z. B. per Skript: Reorganize bei >10 %, Rebuild bei >30 % Fragmentierung). Dieses analytische Vorgehen verhindert, dass man unnötig alle Indizes bearbeitet, und konzentriert die Wartung auf die Problemstellen – was Zeit und Ressourcen spart.
Wartungspläne für die Indexpflege nutzen
Um die Indexoptimierung nicht jedes Mal manuell anstoßen zu müssen, setzen viele Administratoren auf automatisierte Wartungspläne. SQL Server bietet hier komfortable Möglichkeiten, wiederkehrende Indexpflege-Aufgaben einzurichten:
- SQL Server Wartungspläne: Über den Wartungsplan-Assistenten in SQL Server Management Studio kann man grafisch Jobs definieren, die z. B. regelmäßig alle Indizes reorganisieren oder neu erstellen. Es gibt vorgefertigte Tasks wie „Index neu organisieren“ und „Index neu erstellen“, die intern die entsprechenden
ALTER INDEX-Befehle (REORGANIZE bzw. REBUILD) ausführen. Ein gängiges Szenario ist etwa, einen Wartungsplan zu erstellen, der nachts wöchentlich fragmentierte Indizes erkennt und optimiert. Dabei lassen sich Schwellenwerte konfigurieren, um kleinere Fragmentierungen zu ignorieren. Wartungspläne können per SQL Server Agent zeitgesteuert ausgeführt werden und ersparen händische Eingriffe. - Skripte und Wartungs-Stored-Procedures: Viele DBAs bevorzugen flexiblere Lösungen als die Standard-Wartungspläne. Ein herausragendes Beispiel ist das frei verfügbare Index-Optimierungsskript von Ola Hallengren, einem SQL-Server-Experten. Dieses Skript (als Stored Procedure
IndexOptimize) bietet unzählige Parameter zur Feinsteuerung – etwa getrennte Aktionen für verschiedene Fragmentierungsstufen, Optionen für Online-Rebuilds, Filter auf bestimmte Datenbanken oder Indexgruppen usw. – und wird weltweit in vielen Unternehmen für die Indexwartung eingesetzt. Der Vorteil solcher Lösungen: Sie sind hochgradig anpassbar und zuverlässig erprobt. Man kann sie ebenfalls über den SQL Server Agent regelmäßig ausführen lassen. Beispiel: Das Hallengren-Skript kann so konfiguriert werden, dass es jede Nacht alle Indizes überprüft und je nach Fragmentierungsgrad automatisch REORG oder REBUILD anwendet. Damit läuft die Indexpflege quasi „auf Autopilot“ im Hintergrund.
Unabhängig vom gewählten Ansatz sollte man darauf achten, die Wartungsfenster sinnvoll zu planen. Index-Rebuilds können die Datenbank belasten, daher terminiert man sie idealerweise in Nebenzeiten (z. B. nachts oder am Wochenende), wenn wenig Benutzeraktivität herrscht. Reorganize-Jobs sind weniger kritisch, können aber bei sehr vielen Indizes auch spürbar dauern – auch sie führt man bevorzugt außerhalb der Kernarbeitszeit aus. Es empfiehlt sich, Wartungspläne zuerst in einer Testumgebung zu erproben und die Laufzeit zu beobachten, um sicherzugehen, dass im Produktionsbetrieb genügend Zeit bleibt. Richtig eingerichtet, sorgen automatisierte Wartungsroutinen dafür, dass die Indexfragmentierung gar nicht erst außer Kontrolle gerät und die Datenbankleistung langfristig hoch bleibt.
Monitoring: Optimierungsbedarf frühzeitig erkennen
Eine proaktive Überwachung der Indizes hilft, Optimierungsbedarf frühzeitig zu erkennen, noch bevor Benutzer die Verlangsamung spüren. SQL Server stellt diverse Monitoring-Möglichkeiten bereit, um den Zustand von Indizes und deren Nutzung kontinuierlich im Blick zu behalten. IT-Verantwortliche und DBAs können folgende Ansätze nutzen:
- SQL Server Agent Jobs: Man kann mit dem SQL Server Agent regelmäßige Jobs einrichten, die z. B. einmal pro Woche die Fragmentierung aller Indizes prüfen. Ein solcher Job könnte ein Skript mit
sys.dm_db_index_physical_statsausführen und die Ergebnisse in einer Tabelle speichern oder per E-Mail einen Bericht senden. Überschreitet der Fragmentierungsgrad bei einem Index einen definierten Schwellenwert (z. B. 30 %), kann der Job automatisch einen Alarm auslösen oder direkt eine Reorganize/Rebuild-Operation anstoßen. Auf diese Weise wird Index Fragmentierung erkennen zum automatisierten Prozess, und man muss nicht manuell danach suchen. - Data Collector / Data Warehouse: Der SQL Server Data Collector ist ein Feature, das Performance-Daten periodisch sammelt und in einer zentralen Management Data Warehouse-Datenbank speichert. Darüber lassen sich auch Indexmetriken über die Zeit verfolgen. Zum Beispiel kann der Data Collector so konfiguriert werden, dass er regelmäßig Kennzahlen wie Indexnutzung (Seeks/Scans aus
sys.dm_db_index_usage_stats) und Fragmentierungsgrad erfasst. Mit den gesammelten historischen Daten kann man Trends erkennen – etwa welche Indizes sich besonders schnell fragmentieren – und entsprechende Wartungsmaßnahmen einplanen, bevor es zu schlimm wird. Zudem ermöglichen die Berichte des Data Warehouse einen schönen Überblick über die Gesundheitszustände aller Indizes. - Eigene Monitoring-Skripte und Tools: Für tiefere Einblicke gibt es Community-Skripte und eigene Lösungen. Beispielsweise hat SQL-Experte Jason Strate ein Skript entwickelt, das eine äußerst detaillierte Analyse jedes Index liefert (mit Dutzenden von Metriken). Solche Tools gehen über Fragmentierung hinaus und zeigen z. B. Nutzungsstatistiken, Größenentwicklung, Lese-/Schreiblast pro Index und sogar Empfehlungen zu fehlenden Indizes. Ein DB-Administrator kann diese Informationen nutzen, um zu entscheiden, ob vielleicht ein Index hinzugefügt oder entfernt werden sollte. Auch Missing-Index-DMVs (wie
sys.dm_db_missing_index_details) können regelmäßig ausgelesen werden, um Hinweise auf fehlende Indizes zu erhalten, die Abfragen beschleunigen würden. Kurz: Mit maßgeschneiderten Skripten lässt sich eine umfassende Überwachungslösung implementieren, die laufend den Zustand der Indizes checkt und bei Auffälligkeiten Alarm schlägt.
Durch solches Monitoring lassen sich Engpässe oder Wartungsbedarfe früh erkennen. Anstatt zu warten, bis die SQL-Performance spürbar einbricht, kann man proaktiv einschreiten – sei es durch einen außerplanmäßigen Rebuild eines stark fragmentierten Index oder durch Anlegen eines neuen Index, den die Workload offenbar benötigt. Wichtig ist, die Überwachung in sinnvollen Intervallen durchzuführen (z. B. täglich oder wöchentlich, je nach Änderungshäufigkeit der Daten) und die richtigen Schwellwerte zu definieren, wann gehandelt werden muss. So bleibt das System „gesund“, und Überraschungen werden vermieden.
Fazit: Indexoptimierung als Schlüssel zur SQL-Performance
Gut gepflegte Indizes sind der Schlüssel zu einer performanten SQL Server-Datenbank. Indizes beschleunigen Abfragen erheblich und sind damit unverzichtbar für schnelle Anwendungen – sie müssen jedoch regelmäßig optimiert werden, damit sich keine Fragmentierung und Performance-Probleme einschleichen. In diesem Leitfaden haben wir erläutert, wozu Indizes dienen, welche Typen es gibt und wie man sie effektiv einsetzt. Wir haben die Vor- und Nachteile beleuchtet und aufgezeigt, warum eine kontinuierliche Indexpflege (Reorganisation/Neuaufbau) notwendig ist, um SQL Server Performance zu verbessern. Methoden wie Index Rebuild vs. Reorganize wurden gegenübergestellt und bewährte Vorgehensweisen (etwa Schwellenwerte für Fragmentierung) beschrieben. Außerdem haben wir Tools wie Wartungspläne, SQL Agent Jobs und Monitoring-Skripte diskutiert, mit denen Datenbankadministratoren die Indizes automatisiert im Griff behalten.
Abschließend lässt sich festhalten: Eine wohlüberlegte Indexstrategie und deren konsequente Umsetzung sind entscheidend für die Datenbankleistung. Dabei gilt es, die Balance zu finden – genug Indizes für schnelle Abfragen, aber nicht zu viele, um Updates nicht auszubremsen, und regelmäßige Wartung im richtigen Maß. Wenn interne Ressourcen oder Erfahrung fehlen, kann es sinnvoll sein, einen erfahrenen Berater hinzuzuziehen. Ein solcher Experte kann Ihre spezifische Datenbank analysieren, Optimierungspotenziale aufdecken und dabei helfen, einen maßgeschneiderten Indexpflege-Plan zu implementieren. Mit der richtigen Unterstützung und kontinuierlicher Optimierung bleiben Ihre SQL Server-Indizes in Bestform – und somit auch Ihre Datenbank-Anwendungen performant und zuverlässig. Ihre Datenbank und Ihre Anwender werden es Ihnen danken.
Weitere Beiträge zum Thema SQL Server
Azure SQL für IT-Entscheider
1. Management Summary Azure SQL bezeichnet eine Familie von Microsofts Cloud-Datenbankdiensten, die SQL Server-Technologie in Azure als Service bereitstellen. Dazu gehören Azure SQL Database (ein einzeldatenbankbasierter PaaS-Dienst für moderne Anwendungen), Azure SQL...
Azure SQL für Entwickler
Management Summary Azure SQL (PaaS) bietet Softwareentwicklern eine fully-managed SQL-Plattform in der Cloud – mit integrierter Hochverfügbarkeit, automatischen Backups und einfacher Skalierbarkeit. Im Vergleich zu einer selbstverwalteten SQL Server-Instanz entfallen...
NUMA – Grundlagen und Anwendung in SQL Server 2022
Grundlagen von NUMA (Non-Uniform Memory Access) Was ist NUMA? NUMA (Nicht-uniformer Speicherzugriff) ist eine Architektur für Mehrprozessorsysteme, bei der jeder Prozessor über einen eigenen lokalen Arbeitsspeicher verfügt. Alle Prozessoren teilen sich zwar...
NUMA, MAXDOP und Co.: Die größten Fehler und Mythen bei der SQL-Server-Konfiguration
Einleitung In der Datenbankadministration von Microsoft SQL Server gibt es eine Reihe von Konfigurationsthemen – insbesondere rund um NUMA (Non-Uniform Memory Access), MAXDOP (Max Degree of Parallelism) und verwandte Einstellungen – bei denen immer wieder typische...
Tutorial: SQL Server-Indizes für Entwickler
Einführung: Dieser Fachartikel richtet sich an Entwickler mit Grundkenntnissen in Microsoft SQL Server und bietet eine umfassende Einführung in das Thema Indizes. Wir beleuchten, was Indizes sind und warum sie für die Performance einer Datenbank entscheidend sind....
Microsoft SQL Server unter Linux – Strategische Analyse und Praxisleitfaden
1. Management Summary Microsofts Entscheidung, SQL Server auch unter Linux anzubieten, markiert einen strategischen Wandel mit weitreichenden Auswirkungen für IT-Entscheider. Erstmals steht damit eine der führenden relationalen Datenbankplattformen...
Blockgröße für SQL Server richtig auswählen (Windows und Linux)
Einleitung: Die Wahl der optimalen Blockgröße (auch Allocation Unit Size oder Dateisystem-Blockgröße genannt) für Datenträger ist ein wichtiger, oft unterschätzter Faktor beim Betrieb von Microsoft SQL Server unter Windows und Linux. Die Blockgröße eines Dateisystems...
Wartungspläne für Microsoft SQL Server
Management Summary Wartung sichert Verfügbarkeit und Datenintegrität: Geplante Wartungsarbeiten in SQL Server zielen darauf ab, die Verfügbarkeit von Datenbanken hoch zu halten und Datenintegrität zu gewährleisten. Sie minimieren Ausfallzeiten und Risiken und...
Virtualisierung von SQL Server, Best Practices
Management Summary Virtualisierung von Microsoft SQL Server ermöglicht es Unternehmen, Datenbank-Workloads effizienter bereitzustellen und zu verwalten. Durch Konsolidierung mehrerer SQL-Server-Instanzen auf weniger Hardware steigern Organisationen die Auslastung und...
SQL Performance-Analyse (hypothetisches Beispiel)
Management Summary Die Performance-Analyse einer Microsoft SQL-Server-Instanz (Version 2019) hat CPU- und I/O-Engpässe als Hauptprobleme identifiziert. In Spitzenzeiten lag die CPU-Auslastung dauerhaft über 90 %, und die Speicher-I/O-Latenz der Datenbanken überschritt...