RE: Long Parse Time
- From: "Tanel Poder" <tanel@xxxxxxxxxx>
- To: <oracle-l@xxxxxxxxxxxxx>
- 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-l
Other related posts: