Tools für die Leistungsüberwachung und -optimierung

Gilt für:SQL Server

Microsoft SQL Server bietet einen umfassenden Satz von Tools zum Überwachen von Ereignissen in SQL Server und zur 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.

Im Folgenden sind die SQL Server-Überwachungs- und Optimierungstools aufgeführt:

Tool Beschreibung
Integrierte Funktionen (Transact-SQL) Integrierte Funktionen zeigen Momentaufnahmestatistiken zu SQL Server-Aktivitäten seit dem Start des Servers an. Diese Statistiken werden in vordefinierten SQL Server-Leistungsindikatoren gespeichert. Beispielsweise enthält @@CPU_BUSY die Zeit, in der die CPU SQL Server-Code ausgeführt hat; @@CONNECTIONS enthält die Anzahl der SQL Server-Verbindungen oder versuchten Verbindungen; und @@PACKET_ERRORS enthält die Anzahl der Netzwerkpakete, die in SQL Server-Verbindungen auftreten.
DBCC (Transact-SQL) 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 Datenbankmoduloptimierungsratgeber analysiert die Leistungseffekte von Transact-SQL-Anweisungen, die für Datenbanken ausgeführt werden, die Sie optimieren möchten. 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 unterstützt die Auswertung einer zielbezogenen Version des SQL Server-Datenbankmoduls für eine bestimmte Workload. Beim Upgrade von einer früheren SQL Server-Version (ab SQL Server 2005 (9.x)) auf eine neuere Version von SQL Server kann DEA vergleichende Analysemetriken bereitstellen.
Fehlerprotokolle Das Ereignisprotokoll der Windows-Anwendung bietet ein allgemeines Bild von Ereignissen, die auf den Windows Server- und Windows-Betriebssystemen als Ganzes auftreten, sowie Ereignisse in SQL Server, SQL Server-Agent und Volltextsuche. Sie enthält Informationen zu Ereignissen in SQL Server, die an anderer Stelle nicht verfügbar sind. 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. Sie kann eine Instanz von SQL Server unter Windows NT 4.0 oder höher (remote oder lokal) überwachen.

Der Hauptunterschied zwischen SQL Server Profiler und SystemMonitor besteht darin, dass SQL Server Profiler Datenbankmodulereignisse überwacht, während System Monitor die Ressourcennutzung überwacht, die mit Serverprozessen verknüpft ist.
Öffnen des Aktivitätsmonitors (SQL Server Management Studio) Der Aktivitätsmonitor in SQL Server Management Studio ist nützlich für Ad-hoc-Ansichten der aktuellen Aktivität und zeigt grafische Informationen zu:

– Prozesse, die auf einer Instanz von SQL Server ausgeführt werden
– Blockierte Prozesse
– Sperren
– Benutzeraktivität
Leistungsdashboard Das Leistungsdashboard in SQL Server Management Studio hilft ihnen, schnell zu ermitteln, ob in SQL Server ein aktueller Leistungsengpässe auftritt.
Abfrageoptimierungs-Assistent (QTA) Das QTA-Feature (Query Tuning Assistant) führt Benutzer durch den empfohlenen Workflow, um während Upgrades auf neuere SQL Server-Versionen die Leistungsstabilität beizubehalten, wie im Abschnitt "Beibehalten der Leistungsstabilität während des Upgrades auf neuere SQL Server von Abfragespeicher-Verwendungsszenarien" 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 Transact-SQL gespeicherte Prozeduren zum Erstellen, Filtern und Definieren der Ablaufverfolgung:

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 Ablaufverfolgungsdaten wiederzugeben und eine unternehmenskritische Workload zu simulieren.
sp_trace_setfilter (Transact-SQL) SQL Server Profiler verfolgt Modulprozessereignisse, z. B. den Start eines Batches oder eine Transaktion, und ermöglicht es Ihnen, Server- und Datenbankaktivitäten zu überwachen (z. B. Deadlocks, schwerwiegende Fehler oder Anmeldeaktivitäten). Sie können SQL Server Profiler-Daten in einer SQL Server-Tabelle oder einer Datei für eine spätere Analyse erfassen, und Sie können die ereignisse, die in SQL Server erfasst werden, schritt für Schritt wiedergeben, um genau zu sehen, was passiert ist.
Gespeicherte Systemprozeduren (Transact-SQL) Die folgenden gespeicherten SQL Server-Systemprozeduren bieten eine leistungsstarke Alternative für viele Überwachungsaufgaben:

sp_who (Transact-SQL):
Meldet Momentaufnahmeinformationen zu aktuellen SQL Server-Benutzern und -Prozessen, einschließlich der derzeit ausgeführten Anweisung und ob die Anweisung blockiert ist.

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.
Netzwerkmonitor-Agent Überwacht die Netzwerkbelastung.

Weitere Informationen zu den Windows-Betriebssystemen oder zu den Windows-Server-Tools finden Sie in der Windows-Dokumentation.