RE: Long Parse Time
Date: Sat, 9 May 2009 00:06:15 +0300
> 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 -- http://www.freelists.org/webpage/oracle-lReceived on Fri May 08 2009 - 16:06:15 CDT