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

Verwenden von Spotlight Cloud zum Auflösen von SQL Server-Blockierungen

Die SQL Server-Blockierung in einer Datenbank tritt auf, wenn eine Transaktion eine Ressource sperrt und verhindert, dass eine oder mehrere Verbindungen auf derselben Ressource ausgeführt werden. Die zweite Verbindung muss warten, bis die Sperre aufgehoben wird, bevor sie fortgesetzt werden kann. Dies geschieht, um die Isolationskomponente von ACID sicherzustellen – was bedeutet, dass gleichzeitige Transaktionen füreinander nicht sichtbar sind, bis sie abgeschlossen sind. Das Blockieren in SQL Server kann die Leistung in jeder Umgebung beeinträchtigen.

Eine der Aufgaben, die Datenbankadministratoren ausführen, besteht darin, die Abfrage zu identifizieren, die die Blockierung verursacht, sie zu beheben und dann einen Schritt weiter zu gehen, um die Grundursache zu ermitteln. Die Erforschung der Grundursache, insbesondere im Nachhinein, kann eine sehr schwierige Aufgabe sein. Für die meisten bedeutet dies einen sehr zeitaufwändigen Rootprozess durch dynamische SQL Server-Verwaltungsansichten wie s ys.dm_exec_requests oder laufende Systemprozeduren wie sp_who2 um Einzelheiten zu den an der Blockchain beteiligten Systemprozess-IDs (SPIDS) herauszufinden. Spotlight Cloud kann Ihren Aufwand zur Identifizierung dieser blockierenden Ereignisse erheblich reduzieren.

Datenbanküberwachung zum Identifizieren von SQL Server-Blöcken verwenden

Abbildung 1:Übersichts-Dashboard

Ausgehend vom Übersichts-Dashboard bietet Spotlight Cloud einen klaren Überblick über die gesamte Umgebung. Es zeigt Metriken wie Sitzungszahlen, Prozesse, Speichernutzung, Festplattenverbrauch und Wartezeiten auf einen Blick. Noch wichtiger ist, dass es deutlich Blockierungsaktivität zeigt; In der Mitte von Abbildung 1 können Sie deutlich sehen, dass derzeit zwei blockierte Prozesse vorhanden sind.

Für einen DBA ist es notwendig, in die Details zu gehen, um Blockierungsprobleme zu lösen. Spotlight Cloud gibt uns die Möglichkeit, weitere Sitzungsdetails aufzuschlüsseln, indem wir einfach das Dropdown-Menü aus der Übersicht auswählen, wie in Abbildung 2 gezeigt.

Abbildung 2:Dropdown aus der Übersicht

Mit Spotlight Cloud können Sie leicht sehen, welche Sitzungen blockiert sind und welche Anweisungen betroffen sind. In Abbildung 3 können Sie sehen, dass SPID 59 und 65 beide blockiert sind (angezeigt durch orange Hervorhebung um den Status herum), was der Anzahl der blockierten entspricht. Sie werden auch feststellen, dass Spotlight Cloud weiterhin zusammenfassende Details über unseren aktuellen Instanzstatus bereitstellt, sodass wir wichtige Zähler im Auge behalten können, während wir uns mit Leistungsproblemen befassen.

Spotlight Cloud SQL Server-Überwachung verwenden, um Blockierungsprobleme zu lösen

Abbildung 3:Sitzungs-Dashboard

Das Sitzungs-Dashboard (siehe Abbildung 3) liefert uns wichtige Informationen, die wir zur Lösung des Problems benötigen. Hier finden Sie wichtige Informationen, z. B. welcher Benutzer die Anweisungen ausführt, welche Datenbank betroffen ist und wann die Sitzung angegeben wurde. Die gegebene Detailtiefe spart den DBAs, die schnelle Antworten auf die Ursachen der Blockierung benötigen, eine echte Zeitersparnis, damit sie sie beheben können. Sie sehen nicht nur, dass Sie zwei blockierte Übergänge haben, sondern wir können auch sehen, dass es sich bei beiden um UPDATE-Anweisungen in derselben Tabelle handelt, die vom Network Services-Konto für die Sales-Datenbank ausgeführt werden. Die tatsächliche Anweisung wird in der unteren rechten Ecke angezeigt. Schließlich können wir sowohl die aktive SPID als auch die SPID sehen, von der sie blockiert wird.

In der oberen rechten Ecke von Abbildung 3 zeigt Ihnen Spotlight Cloud in blauem Text, wo Sie bei Ihrer Untersuchung als Nächstes vorgehen müssen. Das Produkt in jeder Schicht gibt einen klaren Weg vor, wie man noch tiefer tauchen kann. Wenn Sie auf den Link „In Workload Analyzer untersuchen“ klicken, können Sie sehen, was SPID 61 aufgerufen hat, das zufällig ein Lead-Blocker für SPID 65 ist.

Abbildung 4:Workload Analyzer (hier möchten wir blockierte Sitzungen erweitern)

Der Workload Analyzer bietet Ihnen eine Drilldown-Dimension, mit der Sie auf bestimmte Ressourcen wie Blockierungen zugreifen können. In Abbildung 4 können Sie sehen, wie wir weiter nach unten tauchen, indem Sie auf die beiden Erweiterungspfeile in der Ecke des Abschnitts „Blockierte Sitzungen“ klicken.

Abbildung 5:Details zu blockierten Sitzungen

Jetzt, da Sie die betroffene Datenbank kennen, können Sie ein wenig weiter graben. In der linken Navigation können Sie einen Drilldown in die Verkaufsdatenbank durchführen. Hier sehen Sie SPID 61 und 64 inklusive des aktuellen Status. Beide Systemprozess-IDs blockieren und stellen fest, dass SPID 59 jetzt auch von SPID 64 blockiert wird. Diese Ansicht trägt dazu bei, sicherzustellen, dass Sie der Blockierung immer einen Schritt voraus sind, während Sie weitere Nachforschungen anstellen.

In der unteren Hälfte von Abbildung 5 können Sie im Blocked Session Mapping sehen, dass es Ihnen die Details von SPID 61 mitteilt, die in diesem Fall unser Lead-Blocker ist. Der Übeltäter ist tatsächlich Teil eines laufenden SQL Agent-Jobs, was aufgrund des Benutzers, den wir gefunden haben, sinnvoll ist, der die Anweisung ausführt. Wenn Sie sich erinnern, war es das Netzwerkdienstkonto NT AUTHORITY\NETWORK SERVICE. Auf dieser Instanz wird der SQL Agent-Dienst unter diesen bestimmten Anmeldeinformationen ausgeführt.

Der nächste Schritt besteht darin, herauszufinden, welche Jobs ausgeführt werden, und zu prüfen, ob Sie den Job beenden können, um die Blockierung zu stoppen. Normalerweise würden Sie zu SQL Server Management Studio gehen, um den SQL-Agenten zu überprüfen und sich die Jobs anzusehen, aber Spotlight macht es Ihnen leicht und gibt Ihnen auch einen umfassenden Überblick über Jobs. Sie finden diese, indem Sie oben auf den Pfeil neben den Wörtern „Workload Analyzer“ klicken, so wie Sie es getan haben, als Sie von „Übersicht“ zu „Sitzungen“ navigiert sind.

Abbildung 6:Drop-down-Menü von Workload Analyzer

Zukünftige SQL Server-Blockierungen verhindern

Das Erforschen von Blockierungen braucht Zeit, und manchmal löst sich die Blockierung von selbst, während wir ein bestimmtes Problem untersuchen. In diesem Fall wurde der laufende Job abgeschlossen und die blockierten Updates konnten ausgeführt werden. Obwohl das unmittelbare Problem nicht mehr besteht, müssen Sie dennoch weiter nach der Ursache suchen, um sicherzustellen, dass Sie es in Zukunft verhindern können.

Da Sie SPID 61 bereits als den laufenden Job identifiziert haben und die Zeit vergangen ist, müssen Sie sich jetzt den Verlauf ansehen. Um den Verlauf zu überprüfen, ändern Sie einfach den angezeigten Datumsbereich in den Zeitraum der aktiven Sperrung. In Abbildung 7 sehen Sie den Datumsbereich in der rechten Ecke, Sie können auf das Dropdown-Menü klicken und die Zeiten entsprechend anpassen. Als nächstes möchten Sie mithilfe der Suchfunktion nach SPID 61 suchen. Jede Umgebung ist anders, also hängt es jetzt davon ab, was Sie mit diesen Informationen machen. Ob Sie das Timing des Jobs anpassen, einige Änderungen an Indizes, Code oder Konfigurationen vornehmen, liegt ganz bei Ihnen.

Abbildung 7 Jobs

Abbildung 8:Langlaufende Blöcke

Einige Blöcke kommen und gehen einfach so schnell, dass sie keinen wesentlichen Einfluss auf die Leistung haben. Wenn sie länger bleiben, müssen wir das schnell wissen. Spotlight Cloud verfügt über einen „Langzeitsperre“-Alarm, der den Benutzer über Blockierungen informiert, die nicht entfernt werden.

Abbildung 9:Abmessung des blockierten Objekts

Blockieren ist ein Symptom für einige größere Probleme und es braucht oft unterschiedliche Perspektiven, um die Ursache zu finden. Die Dimension blockierter Objekte im Spotlight Cloud-Workload-Analyzer ermöglicht es dem Benutzer, schnell Objekte zu ermitteln, die die meisten Blockierungsaktivitäten für eine bestimmte Instanz generieren.

Blockaden zu identifizieren und der Ursache auf den Grund zu gehen, ist für DBAs der schwierigste Teil. Mit Spotlight Cloud Professional können wir schnell und effizient auf diese Informationen zugreifen. Wenn das aktive Problem mit der Zeit behoben ist, können wir mit Spotlight Cloud weiter nachforschen, um der Ursache auf den Grund zu gehen, und geben uns letztendlich die Informationen, die wir benötigen, um fundierte Entscheidungen darüber zu treffen, wie wir zukünftige Vorkommnisse verhindern können.

Möchten Sie Spotlight Cloud in Aktion sehen? Starten Sie noch heute Ihre kostenlose 30-Tage-Testversion.