Hintergrund:Verfolgen von langsamen Benutzeranmeldungssitzungen in SQL Server
Wir haben eine Anzahl von Datenbanken der ähnlichen Größe und identischen Schemas. Alle von ihnen haben identische Einstellungen und sind auf der gleichen Instanz platziert. Jeder verwendet eine Anwendung, um auf Datenbanken zuzugreifen und sie abzufragen. Innerhalb der Anwendung sind alle Verbindungszeichenfolgen (außer Login und Passwort) für alle Datenbanken identisch. Viele Benutzer erfahren eine erhebliche Langsamkeit beim Anmelden und Abfragen einer unserer Datenbanken, jedoch nicht bei den anderen.
Problem:
Eine der Datenbanken allmählich langsamer und langsamer zu erreichen. Die Ausführungszeit der Abfrage ist ebenfalls betroffen, jedoch nicht so signifikant wie die Zeit, die der Benutzer benötigt, um sich anzumelden. Jetzt dauert es etwa 50 Sekunden, um sich anzumelden. Für alle anderen Datenbanken beträgt die Anmeldezeit nur 4-5 Sekunden.
Frage:
Ich mag normale Login-Sitzungen auf „gesunden Datenbanken“, um die Log-in-Session auf der problematischen Datenbank vergleichen. Könnten Sie bitte einen Weg vorschlagen, um zu überwachen, was genau in der Anmeldesitzung passiert? Ich weiß, wie Abfragen, die für eine bestimmte Datenbank ausgeführt werden, nachverfolgt werden können, aber ich weiß nicht, wonach ich suchen muss, um herauszufinden, was das Anmelden langsam macht. Würden entweder Profiler oder erweiterte Ereignisse solche Informationen anzeigen? Gibt es eine andere Möglichkeit, zu analysieren, was passiert, wenn der Benutzer sich anmeldet?
Danke Oscar. Zeigt es die Ausführungszeit für jede Abfrage, die über die Anwendung ausgeführt wird? – QWE
@QWE Ja, sowohl Startzeit als auch Endzeit – Oscar
Kann ich @Oscar empfehlen, einige _events_ und _columns_ nach Namen in Ihrer Antwort zu identifizieren, die für die Nachverfolgung nützlich wären? Zum Beispiel "SQL: BatchCompleted" - und "SQL: StmtCompleted" -Ereignisse mit den Spalten "Duration", "StartTime" und "EndTime". –