Tools für die Leistungsüberwachung und -optimierung
Gilt für: SQL Server
Microsoft SQL Server bietet eine umfassende Reihe von Tools für die Überwachung von Ereignissen in SQL Server und für die Optimierung des physischen Datenbankentwurfs. Das richtige Tool ergibt sich aus der Art der gewünschten Überwachung oder Optimierung sowie aus den jeweils zu überwachenden Ereignissen.
In SQL Server stehen die folgenden Tools zur Überwachung und Optimierung zur Verfügung:
Tool | Beschreibung |
---|---|
Integrierte Funktionen | Integrierte Funktionen zeigen Momentaufnahmestatistiken über die SQL Server-Aktivität seit dem Starten des Servers an, die in vordefinierten SQL Server-Leistungsindikatoren gespeichert werden. So enthält beispielsweise @@CPU_BUSY die Zeitspanne, während der die CPU SQL Server-Code ausführte; @@CONNECTIONS enthält die Anzahl der SQL Server-Verbindungen oder versuchten Verbindungen, und @@PACKET_ERRORS enthält die Anzahl der Netzwerkpakete, die über SQL Server-Verbindungen übertragen wurden. |
DBCC-Anweisungen | DBCC-Anweisungen (Database Consistency Checker, Datenbankkonsistenzprüfer) ermöglichen die Überprüfung der Leistungsstatistik und der logischen und physischen Konsistenz einer Datenbank. |
Datenbankoptimierungsratgeber (DTA) | Der Datenbankoptimierungsratgeber analysiert die Leistungsauswirkungen von Transact-SQL-Anweisungen, die auf die Datenbanken für die Optimierung ausgeführt werden. Der Datenbankoptimierungsratgeber bietet Empfehlungen zum Hinzufügen, Entfernen oder Ändern von Indizes, indizierten Sichten und Partitionierungen. |
Assistent für Datenbankexperimente (DEA) | Der Assistent für Datenbankexperimente (DEA) ist eine neue A/B-Testlösung für SQL Server. Sie können zwei Versionen der SQL Server-Datenbank-Engine für einen bestimmten Workload vergleichen. Beim Upgrade aus einer vorherigen SQL Server-Version (beginnend mit SQL Server 2005 (9.x)) auf eine neuere Version von SQL Server kann DEA Vergleichsanalysemetriken bereitstellen. |
Error Logs (Fehlerprotokolle) | Das Windows-Anwendungsereignisprotokoll bietet ein Gesamtbild der Ereignisse, die auf dem Windows Server und den Windows-Betriebssystemen insgesamt auftreten, sowie der Ereignisse in SQL Server, SQL Server Agent und Volltextsuche. Hier sind Informationen zu Ereignissen in SQL Server enthalten, die anderweitig nicht zur Verfügung stehen. Sie können die Informationen im Fehlerprotokoll verwenden, um SQL Server-bezogene Probleme zu beheben. |
Erweiterte Ereignisse | Erweiterte Ereignisse ist ein Lightweight-Leistungsüberwachungssystem, das sehr wenige Leistungsressourcen verwendet. Die Funktion „Erweiterte Ereignisse“ stellt drei grafische Benutzeroberflächen („Assistent für neue Sitzungen“, „Neue Sitzung“ und „XE-Profiler“) zum Erstellen, Ändern, Anzeigen und Analysieren der Sitzungsdaten bereit. |
Dynamische Verwaltungssichten und -funktionen im Zusammenhang mit der Ausführung (Transact-SQL) | Dynamische Verwaltungssichten im Zusammenhang mit der Ausführung ermöglichen Ihnen das Überprüfen von Informationen im Zusammenhang mit der Ausführung. |
Live-Abfragestatistiken (LQS) | Zeigt Echtzeitstatistiken zu den Ausführungsschritten einer Abfrage an. Da diese Daten bereits während der Ausführung einer Abfrage verfügbar sind, ist diese Statistik eine große Hilfe beim Debuggen von Leistungsproblemen in Zusammenhang mit Abfragen. |
Überwachen der Ressourcenverwendung (Systemmonitor) | Der Systemmonitor verfolgt hauptsächlich die Ressourcennutzung, wie die Anzahl der verwendeten Seitenanforderungen des Puffer-Managers. So können Sie die Serverleistung und Aktivität mit vordefinierten Objekten und Leistungsindikatoren überwachen oder benutzerdefinierte Leistungsindikatoren zum Überwachen von Ereignissen verwenden. Der Systemmonitor erfasst Leistungsindikatoren und Raten für die Ereignisse anstelle von Daten über die Ereignisse (z. B. Speicherauslastung, Anzahl der aktiven Transaktionen, Anzahl der blockierten Sperren oder CPU-Aktivität). Für bestimmte Leistungsindikatoren können Schwellwerte festgelegt werden, um Warnungen zu generieren, durch die Operatoren benachrichtigt werden. Der Systemmonitor kann unter den Betriebssystemen Microsoft Windows Server und Windows ausgeführt werden. Hiermit können Sie eine Instanz von SQL Server (remotely oder lokal) unter Windows NT 4.0 (oder höher) überwachen. Der wichtigste Unterschied zwischen SQL Server Profiler und dem Systemmonitor liegt darin, dass bei SQL Server Profiler die Datenbank-Engine-Ereignisse verfolgt werden, im Systemmonitor dagegen die Ressourcennutzung im Zusammenhang mit Serverprozessen. |
Öffnen des Aktivitätsmonitors (SQL Server Management Studio) | Der Aktivitätsmonitor von SQL Server Management Studio eignet sich für eine Ad-hoc-Ansicht der aktuellen Aktivität. Außerdem werden darin die folgenden Informationen grafisch angezeigt: – Prozesse, die unter einer Instanz von SQL Server ausgeführt werden – Blockierte Prozesse – Sperren – Benutzeraktivität |
Leistungsdashboard | Das Leistungsdashboard in SQL Server Management Studio hilft dabei, schnell herauszufinden, ob SQL Server einen Leistungsengpass hat. |
Abfrageoptimierungs-Assistent (QTA) | Die neue Funktion Abfrageoptimierungs-Assistent (Query Tuning Assistant, QTA) führt Benutzer durch den empfohlenen Workflow, um die Leistungsstabilität bei Upgrades auf neuere SQL Server-Versionen aufrecht zu erhalten, wie im Abschnitt Aufrechterhalten einer stabilen Leistung während des Upgrades auf eine neuere Version von SQL Server der Szenarien für die Verwendung des Abfragespeichers beschrieben. |
Abfragespeicher | Das Abfragespeicherfeature bietet Ihnen Einblick in die Auswahl und die Leistung eines Abfrageplans. Er vereinfacht das Beheben von Leistungsproblemen, indem er das schnelle Auffinden von Leistungsabweichungen durch Änderungen an Abfrageplänen ermöglicht. Der Abfragespeicher erfasst automatisch einen Verlauf der Abfragen, Pläne und Laufzeitstatistiken und bewahrt diese zur Überprüfung auf. Es unterteilt die Daten nach Zeitfenstern, sodass Sie Verwendungsmuster für Datenbanken erkennen können und verstehen, wann Abfrageplanänderungen auf dem Server aufgetreten sind. |
SQL-Ablaufverfolgung | Von Transact-SQL gespeicherte Prozeduren, mit denen die Ablaufverfolgung erstellt, gefiltert und definiert wird: sp_trace_create (Transact-SQL) sp_trace_generateevent (Transact-SQL) sp_trace_setevent (Transact-SQL) sp_trace_setfilter (Transact-SQL) sp_trace_setstatus (Transact-SQL) |
SQL Server Distributed Replay | Microsoft SQL Server Distributed Replay kann mehrere Computer verwenden, um Trace-Daten wiederzugeben und so eine unternehmenskritische Arbeitslast zu simulieren. |
sp_trace_setfilter (Transact-SQL) | SQL Server Profiler verfolgt Engine-Prozessereignisse wie das Starten eines Batches oder einer Transaktion. So können Sie die Server- und Datenbankaktivität überwachen (z.B. Deadlocks, schwerwiegende Fehler oder Anmeldeaktivität). Sie können SQL Server Profiler-Daten in einer SQL Server-Tabelle oder -Datei aufzeichnen und später analysieren oder die aufgezeichneten Ereignisse in SQL Server schrittweise wiedergeben, um den genauen Ablauf anzuzeigen. |
Gespeicherte Systemprozeduren (Transact-SQL) | Die folgenden im SQL Server-System gespeicherten Prozeduren bilden eine leistungsfähige Alternative für zahlreiche Überwachungsaufgaben: sp_who (Transact-SQL): Meldet Momentaufnahme-Informationen zu aktuellen SQL Server-Benutzern und -Prozessen, einschließlich der derzeit ausgeführten Anweisung und der Information, ob die Anweisung blockiert wurde. sp_lock (Transact-SQL): Meldet Momentaufnahme-Informationen zu Sperren, einschließlich der Objekt-ID, der Index-ID, des Sperrentyps und des Typs oder der Ressource, auf die die Sperre angewendet wird. sp_spaceused (Transact-SQL): Zeigt einen Schätzwert des Speicherplatzes an, der von einer Tabelle (oder einer gesamten Datenbank) belegt wird. sp_monitor (Transact-SQL): Zeigt Statistiken, wie die CPU-Auslastung, die E/A-Verwendung und die Leerlaufzeit seit der letzten Ausführung von sp_monitor an. |
Ablaufverfolgungsflags (Transact-SQL) | Ablaufverfolgungsflags zeigen Informationen zu einer bestimmten Aktivität im Server an und werden für die Diagnose von Problemen oder Leistungskriterien (z. B. mehrere Deadlocks in Folge) verwendet. |
Auswählen von Überwachungstools
Die Wahl eines geeigneten Überwachungstools hängt von der Art des Ereignisses und der Aktivität, die überwacht werden sollen, ab.
Ereignis oder Aktivität | Erweiterte Ereignisse | SQL Server Profiler | Distributed Replay | Systemmonitor | Aktivitätsmonitor | Transact-SQL | Fehlerprotokolle | Leistungsdashboard |
---|---|---|---|---|---|---|---|---|
Trendanalyse | Ja | Ja | Ja | |||||
Wiedergeben aufgezeichneter Ereignisse | Ja (von einem einzelnen Computer) | Ja (von mehreren Computern) | ||||||
Ad-hoc-Überwachung | Ja1 | Ja | Ja | Ja | Ja | Ja | ||
Generieren von Warnungen | Ja | |||||||
Grafische Benutzeroberfläche | Ja | Ja | Ja | Ja | Ja | Ja | ||
Verwendung im Rahmen von benutzerdefinierten Anwendungen | Ja | Ja2 | Ja |
1 Verwenden von SQL Server Management Studio XEvent Profiler
2 Verwenden von gespeicherten SQL Server Profiler-Systemprozeduren.
Windows-Überwachungstools
Die Windows-Betriebssysteme sowie Windows Server 2003 enthalten außerdem die folgenden Überwachungstools:
Tool | Beschreibung |
---|---|
Task-Manager | Zeigt eine vergleichende Übersicht über die Prozesse und Anwendungen an, die im System ausgeführt werden. |
Systemmonitor | Überwacht Systemressourcen. |
Windows-Anwendungsereignisprotokoll | Anzeigen von Anwendungsereignissen, die von SQL Server und anderen Anwendungen generiert wurden. |
Windows-Firewall | Die Windows-Firewall verfügt über Überwachungsfunktionen für blockierten und zulässigen Datenverkehr. |
Weitere Informationen zu den Windows-Betriebssystemen oder zu den Windows-Server-Tools finden Sie in der Windows-Dokumentation.