Oracle Session Resource Profiler
Contents
Introduction
In short, OraSRP is a profiler. It parses extended SQL trace files and creates report which allows you to learn where your session spent its time and why.
OraSRP can read data from stding, regular file or directly from remote machine via TCP socket.
It may generate reports either in html or in text format.
Installation
OraSRP comes in several forms:
Usage
OraSRP is a command-line utility (like tkprof, for example). Pass trace file name as a first parameter and output report name as a second. Like this:
$ orasrp trace.trc report.html
That's it. More detailed explanation of various command-line options is in the next paragraph.
Command-line options
Brief explanation:

$ orasrp -h
usage:  orasrp [options] trcfile [outfile]

options:
  -h, --help            show this help message and exit
  --version             show program's version number and exit
  -t, --text            output in text format
  --aggregate=YES/no    aggregate similar statements
  -bn, --binds=n        how many unique bind-sets to display (1 by defaut)
  --maxbinds=n          how many unique bind-sets to analyze (all by default)
  -c, --config          specify config file
  --recognize-idle-events=YES/no
                        recognize or not idle wait events 
  --sys=YES/no          print sys statements
  --sort                how to sort statements in output (values like in tkprof)
  -s, --server          run in httpd mode
  -p, --port            listen on alternate port (in httpd mode)
  -r, --remote          connect to remote machine:port
  --display-sections    what sections of report to display (all by default)
  --skip-sections       what sections of report to skip
  --sessionid           analyze data only for the specified session id
  --threshold           omit statements which spend less than threshold % from total time (not used by defaut)
  --google-charts       display charts using Google Chart API


Note that you can use reduced form of options. I.e. instead of '--display-sections' you can use '--display' or just '--d'.

More detailed explanation:
proxysrp.pl utility
OraSRP exists only on Windows/Linux/MacOSX. What if you want to analyze trace files on Solaris (or HP-UX, or AIX)? Previously you had to download tracefile to the machine with OraSRP and then analyze it there.
Starting from OraSRP version 4, you can use another method. Launch small perl script called proxysrp.pl on your Solaris box and leave it running. After that execute OraSRP with --remote flag and specify path to trace file as it's on a remote machine.
For example: let's say we have /path/on/solaris/to/trace.trc on solarisbox and orasrp on linuxbox. Run on solaris:

solarisbox$ perl proxysrp.pl

and on linux:

linuxbox$ orasrp --remote solarisbox /path/on/solaris/to/trace.trc report.html

OraSRP will connect to solarisbox and with help of proxysrp.pl will read trace.trc directly via TCP socket.
Examples
  • Analyze trace1.trc file and generate report report1.html
    $ orasrp trace1.trc report1.html
    
    
  • Analyze trace2.trc file and generate report report2.html without sys statements in it
    $ orasrp --sys=no trace2.trc report2.html
    
    
  • Analyze ora_1234.trc trace file. Display only statements section. For every statement display 2 distinct bind-sets in maximum. Sort statements by total CPU time spent. Omit statements with CPU time spent value less than 5% of total session CPU time spent. Output results in text format into ora_1234.txt file:
    $ orasrp --disp=statements --binds=2 --sort=totcpu --thresh=5 -t ora_1234.trc ora_1234.txt
    
    
  • Analyze data from compressed trace3.trc.gz
    $ gzip -cd trace3.trc.gz | orasrp - report3.html
    
    
  • Analyze trace4.trc which is located on remotehost.
    remotehost$ perl proxysrp.pl
    localhost$ orasrp -r remotehost trace4.trc report4.html
    
    
  • Differences from OraSRP v2.1 and below
    In short (list not complete):
    Contacts
    via e-mail