Hello,
As part of the SLA that we provide to our client we’ve set up a few queries on WEBI to monitor performance. We use a Perl script that logs in as a test user to WEBI, reads an enterprise document, refreshes it, and then logs out. Of course I can get the end-to-end execution time of each phase. What I do not know is how much time is spent on the database tier. Do you think that there is a way to measure this?
I do have auditing activated. Until recently I used a log files but last week, on client demand, I started logging to the database instead. Of course, there is some information available in the audit log, but the fact that the audit tables are updated rather randomly ( ?) makes things a bit more difficult. Most of the events in the log (OBJ_A_EVENT_LOG) have `-1’ as the duration. The events that do show some information are 18, 19, and 25:
- Query 1:
- 18 = 6945 (Compute Result)
- 19 = 6951 (Refresh Document)
- Query 2:
- 18 = 46746 (Compute Result)
- 25 = 46752 (Refresh Document After a Prompt)
- Query 3:
- 18 = 48619 (Compute Result)
- 25 = 48659 (Refresh Document After a Prompt)
I assume that the second result includes the first one, given how close they are. Can I assume that the time on the database is approx.
refresh time measured in my script - duration of 19/25
or are there other hidden costs? (The size of the document does affect the result since the resulting HTML needs to be retrieved, but the effect is minimal given that I execute my script on the host where the HTTP server is located.)
The thing is I have to retrieve the audit log refresh times asynchronously, whenever WEBI decides to update the audit tables… What I’d prefer is a more direct solution… if I could find one.
I was thinking of creating a trigger on the database that would measure the duration directly. That could even be used to turn on extended SQL trace that I could analyze with tkprof (yes it’s an Oracle DB to get more detailed information when there’s a serious issue. However, I don’t know if in a trigger I have access to the text of the SQL query. The user that executes the query is available, but since all WEBI queries are executed with the same Oracle user…
Thanks in advance for any help!
Best regards,
Frank Olsen
Steria
folsen (BOB member since 2003-09-30)