Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

So erfassen und analysieren Sie SQL Server-Ereignisse

Wenn Sie als SQL Server-Datenbankadministrator arbeiten, sollten Sie über die Fähigkeiten verfügen, tief in den Ozean der SQL Server-Engine einzutauchen und herauszufinden, was intern passiert, um in der Lage zu sein, alle Probleme, mit denen Sie möglicherweise konfrontiert sind, zu erkennen, zu beheben und zu beheben.
Sie können von den Protokollen profitieren, die von der SQL Server-Engine lokal in Form von SQL Server-Protokollen oder extern in Form von Ereignisprotokollen geschrieben werden, aber Sie können sie nicht als einzige Quelle für Ihre Fehlerbehebung und Optimierung betrachten Operationen.

SQL Server bietet Ihnen eine Reihe integrierter Funktionen, die zum Erfassen der verschiedenen Arten von SQL Server-Ereignissen verwendet werden können. In diesem Artikel werden wir diese integrierten Funktionen durchgehen und eines der effizientesten kostenlosen Tools von Drittanbietern betrachten, das zum Erfassen und Analysieren von SQL Server-Ereignissen verwendet werden kann.

SQL-Profiler

SQL Server Profiler wird häufig von SQL Server-Datenbankadministratoren und -entwicklern verwendet, um unterschiedliche Arten von Ereignissen über die Abfragen zu sammeln, die auf der verbundenen SQL Server-Instanz ausgeführt werden, und diese Informationen dann zur Verbesserung der Abfrageleistung zu verwenden.

SQL Profiler bietet Ihnen die Möglichkeit, eine Vielzahl von Ereignissen zu erfassen, die Ereigniseigenschaften anzugeben, an denen Sie interessiert sind, und die erfassten Daten basierend auf zuvor angegebenen Eigenschaftswerten zu filtern. Sie können genau nachvollziehen, welcher Benutzer welche Art von Aktion auf welcher Datenbanktabelle, von welchem ​​Computer und zu welcher Zeit ausführt. Darüber hinaus zeigt SQL Profiler die Anzahl der verbrauchten Ressourcen an und zeigt an, ob die Aktion abgeschlossen ist oder mit einem Fehler fehlgeschlagen ist.

Das Erfassen von Ereignissen über SQL Profiler erfolgt entweder durch Verwenden einer Reihe vorhandener Vorlagen oder durch Erstellen Ihrer eigenen benutzerdefinierten Vorlage unter Verwendung der vorhandenen Ereignisse. Zuerst müssen Sie eine Verbindung mit der SQL Server-Instanz herstellen, von der Sie die Ereignisse erfassen möchten, indem Sie den Namen der SQL Server-Instanz, die Authentifizierungsmethode und die Anmeldeinformationen angeben, die zum Herstellen einer Verbindung mit dieser SQL Server-Instanz erforderlich sind, wie unten gezeigt:

Nachdem Sie sich mit der SQL Server-Instanz verbunden haben, werden Sie aufgefordert, die Vorlage für die zu sammelnden Ereignisse basierend auf dem Zweck des Profilerstellungsprozesses anzugeben, wie unten gezeigt:

Aus dem vorherigen Bild können Sie ersehen, dass SQL Profiler Ihnen eine Option zum Speichern des Ablaufverfolgungsergebnisses in einer Datei oder in einer vorhandenen Datenbanktabelle bietet. Wenn keine der bereitgestellten Vorlagen Ihren Anforderungen entspricht, können Sie einfach zur Veranstaltungsauswahl wechseln Tab und kreuzen Sie an, um alle Ereignisse und Spalten anzuzeigen, und filtern Sie dann die erfassten Ereignisse mit den Eigenschaften, an denen Sie interessiert sind. Sie können beispielsweise filtern, um Ereignisse zu erfassen, die von einer bestimmten Datenbank, einem Datenbankbenutzer, einer Datenbanktabelle, einem Hostcomputer usw. stammen wie folgt ein:

Nachdem Sie die Veranstaltungen ausgewählt haben, an denen Sie interessiert sind, klicken Sie einfach auf Ausführen Schaltfläche und starten Sie den Empfang von Ereignissen aus der ausgewählten Datenbank, wie unten gezeigt:

Beachten Sie, dass SQL Profiler eine große Anzahl von Ereignissen sammelt, die schwer zu lesen und zu analysieren sind, wenn Sie keinen sehr genauen Filter definieren, um nur die Ereignisse zu sammeln, an denen Sie interessiert sind. Außerdem ist es nicht Es wird empfohlen, das SQL Profiler-Tool in der Produktionsumgebung auszuführen, da es die Serverressourcen „frisst“ und seine Leistung beeinträchtigt. Wenn Sie es dringend brauchen, versuchen Sie, den Umfang der zu erfassenden Ereignisse einzugrenzen, indem Sie genaue Filter verwenden.

Erweiterte Veranstaltungen

Um das Leistungsverschlechterungsproblem zu überwinden, das durch die Verwendung des veralteten SQL Profiler-Tools zum Erfassen der verschiedenen Arten von SQL-Ereignissen verursacht wird, wurde in SQL Server 2008 eine einfache, hochgradig skalierbare und konfigurierbare Leistungsüberwachungsfunktion eingeführt, die zum Sammeln nützlicher Informationen verwendet werden kann aus der breiten Palette verfügbarer Aktionen mit dem geringstmöglichen Verbrauch von SQL-Ressourcen, was bei der Fehlerbehebung und Optimierung der Leistung der SQL Server-Abfragen hilft. Diese Ereigniserfassungsfunktion heißt SQL Server Erweiterte Ereignisse .

Auf die Funktion „Erweiterte Ereignisse“ kann über SQL Server Management Studio unter Erweiterte Ereignisse zugegriffen werden Option unter Verwaltung Knoten. Um eine neue erweiterte Ereignissitzung zu erstellen, klicken Sie mit der rechten Maustaste auf die Sitzungen Option unter Erweiterte Ereignisse -Knoten und wählen Sie Neue Sitzung aus wie unten:

Aus der Neuen Sitzung Fenster haben Sie die Möglichkeit, aus einer Reihe verfügbarer Vorlagen auszuwählen, mit mehr vordefinierten Vorlagen als die SQL Profiler-Vorlagen, oder einfach eine leere Vorlage zu verwenden und explizit die Ereignisse anzugeben, an denen Sie interessiert sind, wie unten gezeigt:

Aus den Veranstaltungen Auf der Registerkarte können Sie die Ereignisse, an denen Sie interessiert sind, basierend auf der Ereigniskategorie filtern und dann auswählen, welche Eigenschaften für jedes Ereignis Sie abrufen möchten. Darüber hinaus können Sie einen benutzerdefinierten Filter erstellen, um den Umfang der erfassten Ereignisse einzugrenzen, wie unten gezeigt:

Der Speicher Seite bietet Ihnen verschiedene Optionen zum Speichern des Sitzungsergebnisses für erweiterte Ereignisse. In diesem Beispiel speichern wir das Trace-Ergebnis in einer Extended Events-Datei mit den unten konfigurierten Einstellungen:

Nachdem Sie die Sitzung für erweiterte Ereignisse an Ihre Überwachungsanforderungen angepasst haben, klicken Sie auf OK Schaltfläche, um die Sitzung zu erstellen. Nachdem die Sitzung erstellt wurde, beginnt sie nicht automatisch mit der Erfassung der Ereignisse, es sei denn, Sie konfigurieren dies während des Sitzungserstellungsprozesses. Um der Sitzung das Erfassen von Ereignissen zu ermöglichen, klicken Sie mit der rechten Maustaste auf die erstellte Sitzung und wählen Sie Sitzung starten aus Option, wie unten gezeigt:

Um die aufgezeichnete Sitzung anzuzeigen, haben Sie die Möglichkeit, die physische Datei zu öffnen, die zuvor zum Speichern der Ereignisse konfiguriert wurde, oder klicken Sie einfach mit der rechten Maustaste auf die erstellte Sitzung und wählen Sie Live-Daten ansehen Option, wie unten gezeigt:

Ein neues Fenster wird geöffnet, das die gesammelten Ereignisse mit den Eigenschaftswerten für jedes Ereignis wie folgt anzeigt:

Obwohl Sie erweiterte Ereignisse einfach mit wenigen Klicks erstellen können, stoßen Sie dennoch auf einige Schwierigkeiten, wenn Sie versuchen, das richtige zu überwachende Ereignis auszuwählen, da die Benennungskonvention für Ereignisse so komplex ist, dass es schwierig ist, den Zweck hinter jedem Ereignis zu verstehen. Außerdem ist die GUI, in der die Sitzungsinformationen angezeigt werden, immer noch nicht benutzerfreundlich, was die Analyse der Ereignisse und ihrer Eigenschaften erschwert. Ab diesem Zeitpunkt steigt der Bedarf an benutzerfreundlicheren Tools von Drittanbietern, auf die wir im nächsten Abschnitt dieses Artikels eingehen werden.

dbForge-Ereignis-Profiler

dbForge Event Profiler für SQL Server ist KOSTENLOS Tool, mit dem Sie die SQL Server-Ereignisse erfassen und analysieren und die Ereignisdaten zur späteren Untersuchung in einer physischen Ablaufverfolgungsdatei speichern können.

dbForge Event Profiler for SQL Server überwindet das Problem der SQL Profiler-Leistungsverschlechterung, indem es mit der höchstmöglichen Leistung und minimaler Serverlast mit voller Unterstützung für die Funktion „Erweiterte Ereignisse“ ausgeführt wird.

Was den dbForge Event Profiler für SQL Server zu einem attraktiven Event-Profiler-Tool gegenüber der Funktion „Extended Events“ macht, ist die Hervorhebung der Abfragesyntax Funktion, die in SQL Profiler oder der Funktion „Erweiterte Ereignisse“ nicht verfügbar ist. Darüber hinaus bietet es die Möglichkeit, das Filtern und Sortieren durchzuführen Operationen im Grid mit Tracing-Ergebnissen.

dbForge Event Profiler for SQL Server kann einfach verwendet werden, um die verschiedenen Arten von Aktivitäten von SQL Server Database Engine, Analysis Services und Integration Services zu überwachen, T-SQL-Abfragen und leistungsbezogene Probleme mit Transaktionen zu beheben und die verschiedenen SQL Server-Fehler zu überwachen und Warnungen.

Darüber hinaus kann der dbForge Event Profiler für SQL Server zum Auditieren der verschiedenen Aktivitäten der SQL Server-Datenbankbenutzer oder zum Durchführen von Stress- oder Qualitätssicherungstests verwendet werden. Sie können auch einfach Ihre eigenen benutzerdefinierten Ablaufverfolgungen erstellen und diese für die spätere Verwendung speichern.

Um den dbForge Event Profiler for SQL Server zum Erfassen der SQL Server-Ereignisse zu verwenden, müssen Sie ihn kostenlos von der dbForge Download-Seite herunterladen und mit dem unkomplizierten Installationsassistenten wie unten auf Ihrem SQL Server oder Computer installieren :

Um den Installationsvorgang zu starten, klicken Sie auf INSTALLIEREN Schaltfläche Willkommen Seite und geben Sie unter Ziel auswählen den Speicherort an, an dem Sie das Tool installieren möchten Seite unten:

Nachdem Sie den Installationsort angegeben haben, klicken Sie auf Weiter Taste. In den Kurzbefehlen Geben Sie auf der Seite an, ob Sie ein Verknüpfungssymbol für das dbForge-Tool auf Ihrem Desktop erstellen möchten, und klicken Sie dann auf Weiter um fortzufahren:

Auf den Dateizuordnungen Seite werden Sie aufgefordert, die Erweiterung für die Dateien anzugeben, die mit dem dbForge-Tool verknüpft werden. Wählen Sie die Erweiterung für die Dateien aus, die Sie mit diesem Tool öffnen möchten, und klicken Sie dann auf Weiter um fortzufahren:

Auf der Startoptimierung Seite, überprüfen und wählen Sie die beste Option für die Nutzung der Werkzeugleistung aus und klicken Sie dann auf Weiter um fortzufahren:

Jetzt beginnt der Installationsprozess basierend auf Ihrer Auswahl, wobei der Fortschrittsbalken den Status des Installationsprozesses anzeigt, wie unten gezeigt:

Nachdem die Installation von dbForge Event Profiler for SQL Server erfolgreich abgeschlossen wurde, benachrichtigt Sie der Assistent und bietet Ihnen eine Option zum direkten Starten des Tools nach dem Schließen des Installationsassistenten, wie unten gezeigt:

Die Willkommensseite des dbForge Event Profiler für SQL Server ist benutzerfreundlich und jeder, der mit SSMS vertraut ist, kann sich leicht daran gewöhnen. Um eine neue Verfolgung zu starten, klicken Sie auf Neu Option auf der rechten Seite des Tools, wie unten:

In den Profilserver-Ereignissen müssen Sie die Verbindungsinformationen angeben, die zum Herstellen einer Verbindung mit der zu überwachenden SQL Server-Instanz verwendet werden. Wenn es sich um die erste Ausführung des Tools handelt und keine zuvor gespeicherte Verbindung vorhanden ist, klicken Sie auf Neue Verbindung Schaltfläche wie unten gezeigt:

Im Verbindungsmanager Fenster, das Neu Die Schaltfläche bringt Sie zum bekannten Verbindungsfenster, wo Sie aufgefordert werden, den Namen der SQL Server-Instanz, den Authentifizierungsmodus und die Anmeldeinformationen anzugeben, die für die Verbindung mit dem SQL Server erforderlich sind. Nachdem Sie die Verbindungsinformationen angegeben haben, klicken Sie auf Verbindung testen Schaltfläche, um zu überprüfen, ob die von Ihnen eingegebenen Informationen gültig sind, wie unten gezeigt:

Nachdem Sie die Verbindungsinformationen der SQL Server-Instanz bereitgestellt haben, wählen Sie aus einer Liste nützlicher Vorlagen, die die meisten Ablaufverfolgungsfunktionen erfüllen, aus, ob Sie eine vorhandene Vorlage verwenden möchten, oder deaktivieren Sie sie, um die Liste der Ereignisse anzugeben, die Sie im nächsten Schritt erfassen möchten. Außerdem können Sie die Eigenschaften der Zieldatei wie folgt angeben:

Auf den Zu erfassende Ereignisse Seite finden Sie eine benutzerfreundliche und gut kategorisierte Liste von Ereignissen, die sinnvoll beschrieben sind, ohne dass Sie tief eintauchen und versuchen müssen, ihre Bedeutung zu verstehen, wie unten gezeigt:

Das folgende Bild zeigt auch alle verfügbaren Ereigniskategorien mit der Anzahl der Ereignisse in jeder Kategorie. Jetzt können Sie sich daran erfreuen, alle verfügbaren Ereignisse anhand des Namens der Kategorie zu verstehen, wie unten deutlich gezeigt:

Nachdem Sie die Liste der Ereignisse angegeben haben, die Sie erfassen möchten, werden die Aktionen Seite bietet Ihnen die Möglichkeit, die Liste der Aktionen anzugeben, die Sie in der aktuellen Ereignissitzung erfassen möchten, wie unten gezeigt:

In den Ereignisfiltern Seite können Sie auch Ihre eigenen Filter erstellen, um die Anzahl der erfassten Zeilen entsprechend Ihren Anforderungen zu minimieren und die Analyse zu vereinfachen, wie unten gezeigt:

Die Spalten Seite können Sie angeben, welche Spalten Sie in der aktuellen Ereignissitzung anzeigen möchten. Wenn Sie nur die Spalten abrufen, die die Informationen enthalten, die Sie erfassen möchten, können Sie die Größe der Ablaufverfolgungsdatei und die Breite der zurückgegebenen Zeilen erheblich minimieren, wodurch die Analyse der erfassten Daten vereinfacht wird, wie unten gezeigt:

Nachdem Sie Ihre Ereignissitzung angepasst haben, können Sie mit der Erfassung der Ereignisse beginnen, indem Sie auf Ausführen klicken Schaltfläche aus dem vorherigen Bild. Nach dem Start der Ereignissitzung beginnt das Tool direkt mit der Erfassung und Anzeige der Ereignisse, wie unten gezeigt:

Der große Vorteil dabei ist, dass beim Klicken auf ein beliebiges Ereignis eine vollständige Beschreibung davon angezeigt wird, wobei das T-SQL-Skript in einer benutzerfreundlichen farbigen Schriftart in einem separaten Feld angezeigt wird, was die Überprüfung und Analyse sehr einfach macht, wie unten gezeigt:

Darüber hinaus kann dbForge Event Profiler for SQL Server als SSMS fungieren, indem eine Option bereitgestellt wird, um eine neue T-SQL-Abfrage zu schreiben und sie auf der verbundenen SQL Server-Instanz auszuführen, wie unten gezeigt:

Das Tool zeigt die zurückgegebenen Daten auch in einem nützlichen Raster an, das jeden Spaltennamen, Datentyp und Wert wie folgt anzeigt:

Die meisten SQL Server-Datenbankadministratoren sind auf eine Situation gestoßen, als sie versuchten, eine große SQL Server-Datei mit SSMS auszuführen, die mit einem OutOfMemory-Fehler fehlschlug. dbForge Event Profiler for SQL Server überwindet dieses Problem, indem es eine Funktion bereitstellt, um jedes große T-SQL-Skript innerhalb einer SQL-Datei auszuführen. Sie müssen lediglich Großes Skript ausführen auswählen Option aus dem Menü Datenbank, und wählen Sie dann den Speicherort für diese Skriptdatei, die Datenbank, auf der diese Datei ausgeführt wird, und die in dieser Datei verwendete Kodierung aus, wie unten deutlich gezeigt:

Schlussfolgerung

Aus allen vorherigen Beispielen können Sie sehen, wie das KOSTENLOSE Drittanbieter-Tool dbForge Event Profiler for SQL Server verwendet werden kann, um die verschiedenen Arten von SQL Server-Ereignissen zu erfassen und zu analysieren, indem alle Nachteile der gängigen Tools zum Erfassen von Ereignissen überwunden werden. Es ist ein KOSTENLOSES Tool und es lohnt sich auf jeden Fall.