Benutzer mit den meisten Antworten
Fehlerbehandlung in Stored Procedures bei Timeout

Frage
-
Hallo,
ich habe eine Stored Procedure (MSSQL 2008), die manchmal von der aufrufenden Software wegen Timeout abgebrochen wird und dann ein Rollback durchgeführt wird.
Ich möchte nun aber wissen, bis zu welchem Punkt die Stored Procedure gekommen ist, um analysieren zu können, welcher Teil der Software lange gedauert hat.
So auf die Schnelle habe ich dazu nichts gefunden.
Eine Methode wäre, das über das Scripting.FileSystemObject zu machen und jeden Teilschritt in eine Datei zu schreiben.
Gibt es da evtl. eine elegantere Lösung?
Besten Dank.
Gregor
Antworten
-
Stimmt, die Datensätze würden mit dem Rollback auch wieder entfernt. Du kannst xp_logevent (Transact-SQL) verwenden, um ins SQL Server ErrorLog + Windows EventLog zu schreiben, die bleiben erhalten.
Olaf Helper
[ Blog] [ Xing] [ MVP]- Als Antwort vorgeschlagen Aleksander Chalabashiev Montag, 29. September 2014 12:33
- Als Antwort markiert Dimitar DenkovMicrosoft contingent staff, Administrator Dienstag, 7. Oktober 2014 13:24
-
Ich kann ehrlich gesagt nur abraten, das SQL Server ErrorLog selbsttätig zu beschreiben. Das kann systemweite Performance-Auswirkungen haben.
Abgesehen davon ist es auch thematisch nicht der richtige Ort für "irgendwelche Statusmeldungen" aus der Applikationen.- letztendlich haben aus gutem Grunde nur Administratoren darauf Zugriff.
Der richtige Weg wäre, mit Raiserror (http://msdn.microsoft.com/de-de/library/ms178592.aspx) und verschiedenen Stati zu arbeiten, welche sich alle im Catch-Block (http://msdn.microsoft.com/de-de/library/ms175976.aspx ) auswerten lassen und dann selbstverständlich immer noch in eine Tabelle schreiben lassen.
Andreas Wolter (Blog | Twitter)
MCM - Microsoft Certified Master SQL Server 2008
MCSM - Microsoft Certified Solutions Master Data Platform, SQL Server 2012
www.andreas-wolter.com | www.SarpedonQualityLab.com- Als Antwort vorgeschlagen Aleksander Chalabashiev Donnerstag, 2. Oktober 2014 08:17
- Als Antwort markiert Dimitar DenkovMicrosoft contingent staff, Administrator Dienstag, 7. Oktober 2014 13:25
Alle Antworten
-
Stimmt, die Datensätze würden mit dem Rollback auch wieder entfernt. Du kannst xp_logevent (Transact-SQL) verwenden, um ins SQL Server ErrorLog + Windows EventLog zu schreiben, die bleiben erhalten.
Olaf Helper
[ Blog] [ Xing] [ MVP]- Als Antwort vorgeschlagen Aleksander Chalabashiev Montag, 29. September 2014 12:33
- Als Antwort markiert Dimitar DenkovMicrosoft contingent staff, Administrator Dienstag, 7. Oktober 2014 13:24
-
Ich kann ehrlich gesagt nur abraten, das SQL Server ErrorLog selbsttätig zu beschreiben. Das kann systemweite Performance-Auswirkungen haben.
Abgesehen davon ist es auch thematisch nicht der richtige Ort für "irgendwelche Statusmeldungen" aus der Applikationen.- letztendlich haben aus gutem Grunde nur Administratoren darauf Zugriff.
Der richtige Weg wäre, mit Raiserror (http://msdn.microsoft.com/de-de/library/ms178592.aspx) und verschiedenen Stati zu arbeiten, welche sich alle im Catch-Block (http://msdn.microsoft.com/de-de/library/ms175976.aspx ) auswerten lassen und dann selbstverständlich immer noch in eine Tabelle schreiben lassen.
Andreas Wolter (Blog | Twitter)
MCM - Microsoft Certified Master SQL Server 2008
MCSM - Microsoft Certified Solutions Master Data Platform, SQL Server 2012
www.andreas-wolter.com | www.SarpedonQualityLab.com- Als Antwort vorgeschlagen Aleksander Chalabashiev Donnerstag, 2. Oktober 2014 08:17
- Als Antwort markiert Dimitar DenkovMicrosoft contingent staff, Administrator Dienstag, 7. Oktober 2014 13:25