Thanks Martin. I see the following information which only shows that the
session was on the CPU.
Thanks
SELECT
sample_id
, sample_time
, session_id
, session_serial#
, sql_id, session_state
, event
, p1
, p2
, p3
, sql_plan_operation
, current_block#
, current_row#
, in_parse
, in_hard_parse
, in_sql_execution
FROM dba_hist_active_sess_history
WHERE instance_number=3
AND session_id=1740
AND session_serial#=965
AND sql_id='bygjuxxcrd9y3';
SAMPLE_ID SAMPLE_TIME SID ser# SQL_ID SESSION EVENT
P1 P2 P3 SQL_PLAN_OPE CURRENT_BLOCK# CURRENT_ROW# I
I I
---------- ------------------------- ------ ------ ------------- -------
---------- ---------- ---------- ---------- ------------ --------------
------------ - - -
131663406 17-NOV-17 01.27.35.890 PM 1740 965 bygjuxxcrd9y3 ON CPU
2.8535E+10 2.7659E+10 3.2119E+16 UPDATE 0 0 N
N Y
131663396 17-NOV-17 01.27.25.763 PM 1740 965 bygjuxxcrd9y3 ON CPU
2.8535E+10 2.7659E+10 3.2119E+16 UPDATE 0 0 N
N Y
131663386 17-NOV-17 01.27.15.642 PM 1740 965 bygjuxxcrd9y3 ON CPU
2.8535E+10 2.7659E+10 3.2119E+16 UPDATE 0 0 N
N Y
131663376 17-NOV-17 01.27.05.420 PM 1740 965 bygjuxxcrd9y3 ON CPU
2.8535E+10 2.7659E+10 3.2119E+16 UPDATE 0 0 N
N Y
131663576 17-NOV-17 01.30.27.314 PM 1740 965 bygjuxxcrd9y3 ON CPU
3 2 0 UPDATE 0 0 N
N Y
131663566 17-NOV-17 01.30.17.269 PM 1740 965 bygjuxxcrd9y3 ON CPU
3 2 0 UPDATE 0 0 N
N Y
131663596 17-NOV-17 01.30.47.397 PM 1740 965 bygjuxxcrd9y3 ON CPU
3734728201 0 85 UPDATE 0 0 N
N Y
131663586 17-NOV-17 01.30.37.349 PM 1740 965 bygjuxxcrd9y3 ON CPU
3734728201 2.7531E+12 91 UPDATE 0 0 N
N Y
From: Martin Berger [mailto:martin.a.berger@xxxxxxxxx]
Sent: Saturday, November 18, 2017 2:26 AM
To: Hameed, Amir <Amir.Hameed@xxxxxxxxx>
Cc: ORACLE-L <oracle-l@xxxxxxxxxxxxx>
Subject: Re: UPDATE statement - cpu and elapsed time almost the same
Hi Amir,
(if you have diagnostic pack licensed) can you check in
v$active_session_history (or DBA_ACTIVE_SESS_HISTORY) for session_state and
event of this statement? Otherwise manual sampling of v$session.event might
help as well. Or you can create a SQL-tracefile for this particular SQL, e.g.
alter system set events 'sql_trace[sql: xxx] level=12';
A before/after information of v$sesstat will help also.
If you have not seen it yet, Tanel Poders
snapper<http://tech.e2sn.com/oracle-scripts-and-tools/session-snapper> can help
you in collecting information (waits & session stats) about the running session.
With any of these information collected, you can go down the path and identify
where the time is spent.
hth,
Martin
2017-11-18 2:50 GMT+01:00 Hameed, Amir
<Amir.Hameed@xxxxxxxxx<mailto:Amir.Hameed@xxxxxxxxx>>:
Hi,
We traced an Oracle EBS Order Import form which was taking time to import
orders. The trace file showed multiple UPDATE statements that were consuming
time. What was common in all those statements was that their cpu time was
almost the same as their elapsed time. I am pasting one of the statements, its
statistics and explain plan. The explain plan seems to indicate that operation
1, which was executed 4 times, took most of the time. Was the time spent in
this operation was due to the number of buffers processed which is memory
operation and that is the reason cpu statistic was high? The columns being
updated is indexed via a single-column index.
UPDATE OE_ORDER_LINES OEOPT SET ATO_LINE_ID = ( SELECT LINE_ID FROM
OE_ORDER_LINES OEATO
WHERE
OEOPT.TOP_MODEL_LINE_ID = OEATO.TOP_MODEL_LINE_ID AND OEATO.CONFIGURATION_ID
= (SELECT ATO_CONFIG_ITEM_ID FROM CZ_CONFIG_DETAILS_V WHERE CONFIG_HDR_ID =
OEOPT.CONFIG_HEADER_ID AND CONFIG_REV_NBR = OEOPT.CONFIG_REV_NBR AND
CONFIG_ITEM_ID = OEOPT.CONFIGURATION_ID) AND OEATO.OPEN_FLAG = 'Y' ) WHERE
TOP_MODEL_LINE_ID = :B1 AND NOT (ITEM_TYPE_CODE = 'OPTION' AND ATO_LINE_ID =
LINE_ID AND ATO_LINE_ID IS NOT NULL) AND NOT (ITEM_TYPE_CODE = 'INCLUDED'
AND ATO_LINE_ID = LINE_ID AND ATO_LINE_ID IS NOT NULL) AND ITEM_TYPE_CODE
<> 'CONFIG' AND (NVL(MODEL_REMNANT_FLAG, 'N') = 'N' OR LINE_CATEGORY_CODE =
'RETURN') AND ORDERED_QUANTITY > 0
call count cpu elapsed disk query current rows
------- ------ -------- ---------- ---------- ---------- ---------- ----------
Parse 1 0.00 0.00 0 0 0 0
Execute 4 174.74 174.86 0 646 261 30
Fetch 0 0.00 0.00 0 0 0 0
------- ------ -------- ---------- ---------- ---------- ---------- ----------
total 5 174.74 174.86 0 646 261 30
-----------------------------------------------------------------------------------------------------------------------------------------------------
| Id | Operation | Name | Starts |
E-Rows |E-Bytes| Cost (%CPU)| E-Time | A-Rows | A-Time | Buffers |
-----------------------------------------------------------------------------------------------------------------------------------------------------
| 0 | UPDATE STATEMENT | | 0 |
| | 12 (100)| | 0 |00:00:00.01 | 0 |
| 1 | UPDATE | OE_ORDER_LINES_ALL | 4 |
| | | | 0 |00:02:54.91 | 2335 |
|* 2 | TABLE ACCESS BY INDEX ROWID | OE_ORDER_LINES_ALL | 4 |
1 | 454 | 5 (0)| 00:00:01 | 30 |00:00:00.01 | 60 |
|* 3 | INDEX RANGE SCAN | OE_ORDER_LINES_N10 | 4 |
9 | | 1 (0)| 00:00:01 | 30 |00:00:00.01 | 8 |
|* 4 | FILTER | | 30 |
| | | | 26 |00:00:00.01 | 584 |
|* 5 | TABLE ACCESS BY INDEX ROWID | OE_ORDER_LINES_ALL | 30 |
229 | 3664 | 6 (0)| 00:00:01 | 226 |00:00:00.01 | 382 |
|* 6 | INDEX RANGE SCAN | OE_ORDER_LINES_N10 | 30 |
11 | | 1 (0)| 00:00:01 | 226 |00:00:00.01 | 50 |
| 7 | NESTED LOOPS OUTER | | 30 |
1 | 310 | 0 (0)| | 30 |00:00:00.01 | 202 |
| 8 | NESTED LOOPS | | 30 |
1 | 149 | 0 (0)| | 30 |00:00:00.01 | 172 |
|* 9 | TABLE ACCESS BY INDEX ROWID| CZ_CONFIG_ITEMS | 30 |
1 | 108 | 0 (0)| | 30 |00:00:00.01 | 112 |
|* 10 | INDEX RANGE SCAN | CZ_CONFIG_ITEMS_N1 | 30 |
1 | | 0 (0)| | 256 |00:00:00.01 | 50 |
|* 11 | TABLE ACCESS BY INDEX ROWID| CZ_CONFIG_HDRS | 30 |
1 | 41 | 0 (0)| | 30 |00:00:00.01 | 60 |
|* 12 | INDEX UNIQUE SCAN | CZ_CONFIG_HDRS_PK | 30 |
1 | | 0 (0)| | 30 |00:00:00.01 | 30 |
|* 13 | INDEX UNIQUE SCAN | CZ_CONFIG_ATTRIBUTES_PK | 30 |
1 | 161 | 0 (0)| | 0 |00:00:00.01 | 30 |
-----------------------------------------------------------------------------------------------------------------------------------------------------
Thank you,
Amir
--
Martin Berger +43 660 2978929<tel:+436602978929>
martin.a.berger@xxxxxxxxx<mailto:martin.a.berger@xxxxxxxxx>
@martinberx<https://twitter.com/martinberx>
^∆x http://berxblog.blogspot.com