Re: Finding cause and fix for Idle wait event

From: Jonathan Lewis <jlewisoracle_at_gmail.com>
Date: Fri, 24 Feb 2023 13:30:44 +0000
Message-ID: <CAGtsp8kucuJ_3S8+kLENWCBqQoMJTOq2appc2_7AkGH6hvLuHQ_at_mail.gmail.com>



"lookup cache is finished" means nothing to anyone who doesn't work with Informatica, and (based on previous experience) doesn't necessarily mean much to most people who do work with Informatica.

I think you said this process is inserting 200M rows. Does that mean that somehow informatica is reading 200M rows from somewhere and then doing some sort of lookup to translate some incoming values to outgoing values. Does that "lookup" operate as something like a nested loop, or does it operate as a hash join, or as a merge join. Where do the 200M rows go as there "looked-up" values are found?

Has Informatica spilled the rows to disc, and has some change in the lookup method meant that it now takes more time for informatica to find the next batch of rows. The time loss is entirely due to what Informatica is doing, and if you don't have the exact details of what it's doing and how it's doing it there's nothing you can do at the Oracle end of the system (which is just waiting for Informatica to supply data) to get rid of the waits. (You have to get the Informatica person to explain carefully how a "lookup" works, and maybe you can ask a few "what if" questions that might prompt him/her to come up with a scenario that the pair of you can agree is consistent with what Oracle is seeing.

Regards
Jonathan Lewis

On Fri, 24 Feb 2023 at 12:48, Lok P <loknath.73_at_gmail.com> wrote:

> Thank you Nenad. I just checked again with the ETL dev and saw there is
> actually lookup cache finished completely, before these batch INSERT
> started. But still why there is so much 'sql * net message from client'
> wait coming within each batch of INSERT submitted to the database? I keep
> on checking gv$session when the insert is running and seeing its active and
> then goes inactive with 'sql * net message from client' for 2-3 seconds.
>
> So in above scenario where no look up cache is happening but it's just
> the batch insert running from etl, will it be network related issue then?
> Also would it be good idea here to trace the session and serial#(like
> below) to get any packet transfer clue?
>
> begin
> dbms_monitor.session_trace_enable(
> session_id => &m_sid,
> serial_num => &m_serial,
> waits => true,
> bind => true,
> plan_stat => 'all_executions'
> );
> end;
> /
>
> begin
> dbms_monitor.session_trace_disable(
> session_id => &m_sid,
> serial_num => &m_serial
> );
> end;
> /
>
> On Fri, 24 Feb, 2023, 2:10 pm Nenad Noveljic, <nenad.noveljic_at_gmail.com>
> wrote:
>
>> I was under impression that look ups means just filters/read from the
>>> informatica cache which would be fast, but I agree sorting rows like
>>> 200million and joining can be resource intensive.
>>>
>> Informatica can also start spilling data to files.
>>
>> Is there any instrumentation available st informatica which shows how
>>> much time/resources does those cached lookups take for a workflow?
>>
>> Not that I'm aware of. I don't, however, know the product. But you could
>> measure CPU/memory/IO load to get an idea how intensive the processing is.
>>
>>
>>> And do you say, modifying sdu_size/tdu in client side or database is not
>>> going to make any difference in this case?
>>
>> Not if the primary cause is the Informatica process being busy with
>> data crunching.
>>
>>

--
http://www.freelists.org/webpage/oracle-l
Received on Fri Feb 24 2023 - 14:30:44 CET

Original text of this message