DBAs spielen eine wichtige Rolle innerhalb einer Organisation. Als Verwalter von Daten sind sie für die Verwaltung aller Aspekte der Datenbankleistung verantwortlich, einschließlich Hochverfügbarkeit, schneller Abfrageverarbeitungszeit sowie Risikominderung und Notfallwiederherstellung. Darüber hinaus sind DBAs für das Geschäftsziel verantwortlich, die Datenbanken der Organisation mit Blick auf ROI und Kosteneinsparungen zu pflegen.
Mit all den verschiedenen Aufgaben, die sie tragen, müssen DBAs effizient arbeiten, und effektives Zeitmanagement ist ihr bester Freund. Der beste Weg, Effizienz zu erreichen, besteht darin, sich zunächst auf die wichtigsten Aktivitäten zu konzentrieren, die dazu beitragen, dass die Datenbanken optimal funktionieren.
Hier sind vier Aktivitäten zur Datenbanküberwachung, die auf der „Must-know“-Liste jedes DBA ganz oben stehen sollten.
Wie (und warum) die Standardeinstellungen in SQL Server angepasst werden
Viele DBAs führen SQL Server so aus, wie es ist, direkt nach dem Auspacken. Die Standardkonfigurationen sind jedoch aus Sicherheits- oder Leistungsgründen nicht immer die beste Wahl. Die Datenbanken jeder Organisation sind unterschiedlich und erfüllen unterschiedliche Geschäftsanforderungen, daher ist es nur sinnvoll, dass nicht jede Datenbank auf die gleiche Weise konfiguriert ist.
Abhängig von Ihren spezifischen Datenbankanforderungen und -präferenzen gibt es mehrere SQL Server-Standardeinstellungen, die Sie möglicherweise ändern möchten:
- Füllfaktor:Wenn Sie einen Index erstellen, ohne den Füllfaktor anzugeben, ist der Standardwert 0. Das bedeutet, dass die Seite bis zur Kapazitätsgrenze gefüllt wird und Einfügungen, Löschungen oder Aktualisierungen übermäßige Seitenteilungen und Fragmentierung verursachen können.
Es gibt keinen allgemein „korrekten“ Füllfaktorwert, aber 80-90 ist normalerweise eine sichere Wahl. Mit diesem Wertebereich können 80–90 % der Seite ausgefüllt werden, wobei 10–20 % frei bleiben.
- Kostenschwelle für Parallelität:Die Kostenschwelle für Parallelität ist der Wert, bei dem die SQL Server-Engine beginnt, parallele Pläne für Ihre Abfragen auszuführen. Der Standardwert beträgt fünf Sekunden, aber dieser Wert ist ziemlich niedrig und könnte viele unnötig komplexe Abfragen erstellen, die sich negativ auf die Leistung auswirken.
Beginnen Sie mit einer Einstellung von 20 Sekunden und passen Sie sie je nach Bedarf basierend auf CXPACKET-Wartezeiten und CPU-Auslastung an.
- Automatische Vergrößerung der Datenbankdatei:Automatische Vergrößerung ist ein Prozess, der auftritt, wenn die SQL Server-Engine die Größe einer Datenbankdatei erhöht, wenn ihr nicht genügend Speicherplatz zur Verfügung steht. Wie stark die Datei wächst, ist standardmäßig auf 1 MB für Datendateien und 10 Prozent für Transaktionsprotokolldateien festgelegt.
Jede Datenbank wächst mit unterschiedlichen Raten. Schätzen Sie also, wie stark die Datenbank Ihrer Meinung nach wachsen wird, und legen Sie den Wert entsprechend fest.
- Datenbank-Wiederherstellungsmodell:Das standardmäßige Wiederherstellungsmodell ist FULL out of the box, aber das ist nicht für alle Datenbanken effizient.
Ändern Sie die Einstellung für Datenbanken, die nicht unternehmenskritisch sind, in EINFACH und belassen Sie die Einstellung nur für Produktionsdatenbanken mit hohem Risiko auf VOLLSTÄNDIG. - Max. Serverspeicher:Der Standardwert ist 2 TB, was bedeutet, dass SQL Server den gesamten Speicher vom Betriebssystem zuweist. Dadurch bleibt kein Speicher für das Betriebssystem übrig.
Passen Sie die Einstellung an, um die für den SQL Server-Prozess verfügbare Speichermenge zu maximieren, lassen Sie jedoch bei Bedarf etwas für das Betriebssystem übrig. - Maximaler Parallelitätsgrad (MAXDOP):MAXDOP steuert, wie viele Prozessoren für die Ausführung einer Abfrage in einem parallelen Plan verwendet werden. Der Standardwert ist 0, was bedeutet, dass SQL Server bestimmen kann, wie viele Prozessoren verwendet werden können. Wenn Sie die Kosten für den Schwellenwert für Parallelität auf dem Standardwert von 5 belassen, werden Sie möglicherweise alle CPUs für jede Abfrage verwenden.
Die ideale MAXDOP-Einstellung hängt von Ihrem spezifischen System ab, aber Microsoft bietet hier einige Vorschläge an. - Sicherungskomprimierung:Die Standardeinstellung für diese Funktion ist AUS. Die Backup-Komprimierung beschleunigt jedoch Datenbank-Backup-Vorgänge und erstellt kleinere Backup-Dateien, sodass Sie sie möglicherweise einschalten möchten.
Ein letzter Tipp zum Anpassen der SQL Server-Einstellungen von den Standardwerten:Testen Sie das System immer gründlich, nachdem Sie Einstellungen geändert haben, um sicherzustellen, dass keine Probleme versehentlich eingeführt wurden.
So beseitigen Sie SQL Server-Engpässe
SQL Server-Engpässe sind eine häufige Quelle von Leistungsproblemen, einschließlich SQL Server, der den Prozessor in Beschlag nimmt, lange Abfrageausführungszeiten, übermäßige E/A und extreme Aktivität auf den Datenträgern.
Es gibt viele Gründe, die keine Engpässe sind, warum Ihre Datenbank diese Leistungsprobleme haben kann, aber wenn das Problem auf SQL Server-Engpässe zurückzuführen ist, gibt es drei Hauptbereiche, die wahrscheinlich betroffen sind:Arbeitsspeicher, E/A und CPU.
Speicherengpässe resultieren aus unzureichenden Speicherressourcen oder SQL Server-Aktivitäten, die zu viel verfügbaren Speicher verwenden. Achten Sie auf längere Ausführungszeiten von Abfragen, übermäßige E/A, Meldungen zu wenig Arbeitsspeicher im Anwendungsprotokoll und häufige Systemabstürze.
E/A-Engpässe treten auf, wenn nicht genügend Speicher verfügbar ist, um reguläre Datenbankoperationen wie tempDB zu unterstützen. Achten Sie auf lange Antwortzeiten, Anwendungsverlangsamungen und häufige Zeitüberschreitungen bei Aufgaben.
CPU-Engpässe werden durch unzureichende Hardwareressourcen verursacht. Achten Sie in Ihrer Datenbanküberwachung auf Protokolldaten, die zeigen, dass SQL Server übermäßig viel CPU verwendet.
Wie man das Wachstum von tempDB verhindert
TempDB ist ein temporärer Arbeitsbereich in SQL Server-Instanzen, der zum Erstellen und Speichern von temporären und temporären Objekten verwendet wird. TempDB ist eine der aktivsten Ressourcen in einer SQL Server-Umgebung, daher ist es wichtig, ein übermäßiges Wachstum von tempDB zu überwachen und zu kontrollieren.
TempDB wird häufig innerhalb einer Instanz verwendet, da es zum Speichern von Benutzerobjekten, internen Objekten und Versionsspeichern verwendet wird. Übermäßiges Wachstum von tempDB kann Leistungsprobleme verursachen, daher ist es wichtig, große Abfragen, temporäre Tabellen und Tabellenvariablen zu verfolgen, die eine große Menge an tempDB-Speicherplatz belegen.
Um die Größe und das Wachstum von tempDB zu optimieren, empfiehlt Microsoft die folgenden Best Practices:
- Setzen Sie das Wiederherstellungsmodell von tempDB auf SIMPLE
- Zulassen, dass tempDB-Dateien nach Bedarf automatisch wachsen
- Stellen Sie das Dateiwachstumsinkrement auf eine angemessene Größe ein, um zu vermeiden, dass die tempDB-Datenbankdateien um einen zu kleinen Wert wachsen
- Ordnen Sie Speicherplatz für alle tempDB-Dateien vorab zu, indem Sie die Dateigröße auf einen Wert festlegen, der groß genug ist, um die typische Arbeitslast in der Umgebung aufzunehmen
- Machen Sie jeder Datendatei dieselbe Größe
Sie können die Größen- und Wachstumsparameter der tempDB-Datendateien mithilfe von SQL Server Management Studio anpassen.
So berechnen Sie die Gesamtbetriebskosten
Auch wenn Sie nicht viel Zeit damit verbringen, über das Budget Ihres Unternehmens nachzudenken, glauben Sie besser, dass der CFO dies tut. Wenn es an der Zeit ist, nach einer neuen Leistungsüberwachungstechnologie zu fragen, ist es ratsam, mit harten Daten vorbereitet zu sein, um Ihre Anfrage zu untermauern.
Eine der einflussreichsten Daten, die Sie präsentieren können, sind die potenziellen Gesamtbetriebskosten (TCO) der neuen Technologie im Vergleich zu Ihrer aktuellen Lösung. Berücksichtigen Sie neben den direkten Kosten auch die indirekten Kosten wie Infrastruktur- und Ressourcenkosten wie Wartung.
Die Reduzierung der Gesamtbetriebskosten ist ein gemeinsames Ziel für DBAs, die ihr aktuelles Tool zur Überwachung der Datenbankleistung ersetzen möchten, daher müssen mehrere Faktoren berücksichtigt werden. Wie oben erwähnt, ist es wichtig, nicht nur direkte Kosten wie den Kaufpreis zu betrachten, sondern auch indirekte Kosten wie Lager- und Ressourcenkosten wie Schulungen.
Um die TCO für das neue Tool zu ermitteln, geben Sie Ihre Daten in einen TCO-Rechner ein und sehen Sie, wie hoch die Kosteneinsparungen sind, falls vorhanden.