it-swarm.com.de

Details zu alten Sitzungen anzeigen

Gibt es eine Möglichkeit, Details zu Sitzungen aus der Vergangenheit anzuzeigen (ich erwarte voll und ganz, dass die Antwort "Nein" lautet). Ich versuche herauszufinden, auf welchem ​​Server eine bestimmte Anwendung ausgeführt wird und welche Anwendung auf eine bestimmte Datenbank zugreift. Ich weiß, dass die Anwendung irgendwann an einem Freitagabend ausgeführt wird, und ich hatte gehofft, dass SQL Server einen Sitzungsverlauf verwaltet, sodass ich einfach nachschlagen kann sp_who- ähnliche Details für die fraglichen Stunden.

Wie ich schon sagte, ich erwarte nicht, dass dies möglich ist, aber im Moment klammere ich mich absolut an Strohhalme.

Danke im Voraus.

EDIT : Ich habe den fraglichen Server am Ende auf andere Weise gefunden; Der Job führte eine SQL-Anweisung aus, um eine Datei zu erstellen, die dann per FTP an eine andere Site gesendet wurde. Diese Site verfügt über eine FTP-Protokollierung, die mir den Namen und die IP-Adresse des Quellservers geben kann. Vielen Dank für die Antworten - ich wünschte nur, ich könnte beide akzeptieren, da beide sehr gute Punkte machen und sehr gute Vorschläge machen.

7
Spratty

Nein, SQL Server führt keinen Verlauf der Sitzungsaktivität. Stellen Sie sich vor, wie schnell das wachsen würde. Ihre einzigen Hoffnungen, diese Informationen aus der Vergangenheit abzurufen, wie ich denke, sind:

  1. Dass die App etwas tut, das im Standard-Trace protokolliert wird (und diese Ereignisse nicht weggerollt wurden);
  2. Fehler, die die App möglicherweise generiert hat und die eindeutig angeben, mit welchem ​​Server sie verbunden ist, sind im Ereignisprotokoll des Anwendungscomputers gelandet. oder,
  3. Fehler, die die App möglicherweise generiert hat (wie Deadlocks, E/A-Warnungen oder fehlgeschlagene Anmeldungen), wurden im SQL Server-Fehlerprotokoll oder in der system_health-Sitzung erfasst.

Wie in den Kommentaren erwähnt, können Sie jetzt natürlich etwas einrichten, um diese Aktivität in Zukunft zu erfassen, sodass Sie nicht herum sitzen und warten müssen, um F5 wiederholt zu hämmern, wenn die App ausgeführt wird. Sie können eine Vielzahl von Dingen oder sogar eine Kombination verwenden, je nachdem, ob Sie sich nur für Verbindungen, nur für Schreibaktivitäten, nur für den Zugriff auf bestimmte Tabellen oder Datenbanken usw. interessieren.

8
Aaron Bertrand

Dies ist nur möglich, wenn Sie ein Überwachungstool eines Drittanbieters oder eine andere Art von Aktivitätskollektor konfiguriert haben. Wie in diese Antwort erwähnt, finden Sie möglicherweise etwas Hilfreiches im plan cache:

SELECT t.[text], s.last_execution_time
FROM sys.dm_exec_cached_plans AS p
INNER JOIN sys.dm_exec_query_stats AS s
   ON p.plan_handle = s.plan_handle
CROSS APPLY sys.dm_exec_sql_text(p.plan_handle) AS t
WHERE t.[text] LIKE N'%something unique about your query%'
ORDER BY s.last_execution_time DESC;

Aber anscheinend suchen Sie nach anderen Informationen.

Für die Zukunft sollten Sie auf jeden Fall ein Tool wie SSMS Tools Pack (es ist nicht kostenlos) oder schauen Sie sich this post von Brent Ozar an - es ist eine völlig kostenlose Möglichkeit, die Aktivität Ihres Servers mit der kostenlosen Prozedur von Adam Machanic zu protokollieren sp_whoisactive damit Sie die Fragen beantworten können, die Sie gerade gestellt haben.

5
George K