> In this case, you can add your own timing info like this: > > tail -f the_trace_file | perl -nle 'print time, $_' I think this would suffer from write buffering effect, tail doesn't dump out data immediately when the write happens and pipes also have some buffering in them. I once hacked a library which hijacked write calls to tracefiles using LD_PRELOAD and did something similar. Not too practical for producting environments though so better stick with stack tracing :) > My first response to this type of problem would be like you > both said, check function call stack. Just run pstack <shadow > process ID> a couple of times during the long parse, and > you'll know what function it repeatedly hangs on. Pstack or > equivalent is available on many OS's. ALL OS'es, that's a fundamental software debugging tool, not Oracle nor Unix specific - it's any software specific technique. When talking about Oracle, then on Windows it's better to use Oracle's "oradebug short_stack" or "dump errorstack" but again these have some safety issues so you've got to be careful with these. -- Regards, Tanel Poder http://blog.tanelpoder.com -- //www.freelists.org/webpage/oracle-l