Hallo zusammen,
ich habe eine Prozedur zur Verarbeitung von Daten, welche in mehreren Schritten verschiedene Unterprozeduren aufruft, welche ihrerseits teilweise auch weitere Unterprozeduren aufrufen können. Die Prozeduren bestehen in der Regel aus mehreren SQL-Anweisungen, die Daten in temporären Tabellen prüfen oder verändern.
Um die Performance zu verbessern möchte ich gern wissen, welche der Anweisungen die meiste Zeit brauchen. Manchmal habe ich auch das Problem, dass die Prozedur sehr lange läuft, ich weiß aber nicht, an welcher Stelle es gerade hängt. pg_stat_activity zeigt mir eben nur an, dass die Mutterprozedur läuft aber was deren Kinder so treiben kriege ich nicht raus. Ich habe es mit log_duration true und tail -f auf das Logfile versucht aber das ist sehr unübersichtlich und da schreiben auch viele andere Prozesse rein.
Was ist die beste/einfachste Möglichkeit, das zu tun, also einen einzelnen Prozess/eine konkrete Session zu tracen, wo sie sich gerade befindet und wieviel Zeit was gebraucht hat.
Vielen Dank Pittiplatsch