Help in TKPROF Output: Row Source Operation v.s Execution plan confusing
Hello,
Working with oracle 10g/widnows, and trying to understand from the TKPROF what is the purpose of the "Row Source operation" section.
From the "Row Source Operation" section the PMS_ROOM table is showing 16 rows selected, and accessed by an ACCESS FULL, and the following script gives another value.
select count(*) from pms_folio give the following.
COUNT(*)
148184
But in the execution plan section, the PMS_FOLIO table is accessed by ROW ID after index scan in the JIE_BITMAP_CONVERSION index
What really means Row Source operation compares to the execution plan and how both information should be read to fully know if the optimizer is not making wrong estimation?
furthermore readding 13594 buffers to fetch 2 rows, show the SQL Script itself is not sufficient, but the elapsed time is roughly 0.7seconds,but shrinking the # of buffers to be read should probably shrink the response time.
The following TKPROF output.
Thanks very much for your help
SELECT NVL(SUM(NVL(t1.TOTAL_GUESTS, 0)), 0)
FROM DEV.PMS_FOLIO t1
WHERE (t1.FOLIO_STATUS <> 'CANCEL'
AND t1.ARRIVAL_DATE <= TO_DATE(:1, 'SYYYY/MMDDHH24MISS')
AND t1.DEPARTURE_DATE > TO_DATE(:1, 'SYYYY/MMDDHH24MISS')
AND t1.PRIMARY_OR_SHARE = 'P' AND t1.IS_HOUSE = 'N')
call count cpu elapsed disk query current rows
Parse 1 0.00 0.00 0 0 0 0
Execute 2 0.00 0.00 0 0 0 0
Fetch 2 0.12 0.12 0 13594 0 2
total 5 0.12 0.12 0 13594 0 2
Misses in library cache during parse: 0
Optimizer mode: ALL_ROWS
Parsing user id: 82 (PMS5000)
Rows Row Source Operation
2 SORT AGGREGATE (cr=13594 pr=0 pw=0 time=120165 us)
16 TABLE ACCESS FULL PMS_FOLIO (cr=13594 pr=0 pw=0 time=121338 us)
Rows Execution Plan
0 SELECT STATEMENT MODE: ALL_ROWS
2 SORT (AGGREGATE)
16 TABLE ACCESS MODE: ANALYZED (BY INDEX ROWID) OF 'PMS_FOLIO'
(TABLE)
0 INDEX MODE: ANALYZED (RANGE SCAN) OF
'JIE_BITMAP_CONVERSION' (INDEX)
<Edited by: user552326 on 8-Apr-2009 12:49 PM
Edited by: user552326 on 8-Apr-2009 12:52 PM
Edited by: user552326 on 8-Apr-2009 12:53 PM
Your query is using bind variables. Explain Plan doesn't work exactly the same way -- it can't handle bind variables.
See http://www.oracle.com/technology/oramag/oracle/08-jan/o18asktom.html
In your output, the row source operations listing is the real execution.
The explain plan listing may well be misleading as Oracle uses cardinality estimates when trying to explain with bind variables.
Also, it seems that your plan table may be a 9i version, not the 10g PLAN_TABLE created by catplan.sql There are additional columns in the 10g PLAN_TABLE that explain uses well.
BTW, you start off with a mention of "PMS_ROOM" showing 16 rows, but it doesn't appear in the data you have presented.
Similar Messages
-
Resource consumption details not shown for each row source operation
Hi Friends,
I have generated a tracefile for a query as shown below.
set autotrace traceonly arraysize 100
ALTER SESSION SET optimizer_mode = ALL_ROWS ;
alter session set tracefile_identifier = 'trcwithtime_221010_03';
alter session set events '10046 trace name context forever, level 12';
spool on
spool C:\Sree\trcwtime.log
-- put your statement here
SELECT e.*,d.dname
FROM scott.emp e
,scott.dept d
WHERE e.deptno = d.deptno;
spool off;
exitBelow is the trace file
SELECT e.*,d.dname
FROM scott.emp e
,scott.dept d
WHERE e.deptno = d.deptno
call count cpu elapsed disk query current rows
Parse 1 0.00 0.00 0 0 0 0
Execute 1 0.00 0.00 0 0 0 0
Fetch 2 0.00 0.00 4 7 0 14
total 4 0.00 0.00 4 7 0 14
Misses in library cache during parse: 0
Optimizer goal: ALL_ROWS
Parsing user id: 173
Rows Row Source Operation
14 HASH JOIN
4 TABLE ACCESS FULL DEPT
14 TABLE ACCESS FULL EMP
Elapsed times include waiting on following events:
Event waited on Times Max. Wait Total Waited
---------------------------------------- Waited ---------- ------------
SQL*Net message to client 2 0.00 0.00
db file sequential read 4 0.00 0.00
SQL*Net message from client 2 0.41 0.77
********************************************************************************For each rowsource operation, resource consumption details (cr,pr,pw,time) are not shown in the TKPROF output.
How can i get these details as well?
DBVersion: 9.2.0.8
Regards,
Sreekanth MunagalaSreekanth Munagala wrote:
For each rowsource operation, resource consumption details (cr,pr,pw,time) are not shown in the TKPROF output.
How can i get these details as well?
DBVersion: 9.2.0.8You can get those details by setting values for following parameters (at session level, preferably) before generating the 10046 trace.
ALTER SESSION SET statistics_level = ALL ;
ALTER SESSION SET timed_statistics = TRUE ; -
Help interpreting tkprof output
in the index range scan I only get 13,000 physical reads, but in the total I get 66,500. Why such a big difference.
This comes from a function that is called in the where clause of a query(I know its bad, I didn't write it and I have to improve it or change it). I get
i know the main reason is that this runs so many times.
SELECT ID
FROM
MYTABLE WHERE MY_ID = :B2 AND MY_TYPE_CODE = :B1 AND
MY_CODE IN ('A','M') AND MY_STATUS_CODE = 'S'
call count cpu elapsed disk query current rows
Parse 1 0.00 0.00 0 0 0 0
Execute 2281215 2154.25 31475.39 0 0 0 0
Fetch 2281215 184.79 877.79 66503 9249950 0 84758
total 4562431 2339.04 32353.19 66503 9249950 0 84758
Misses in library cache during parse: 1
Misses in library cache during execute: 1
Optimizer mode: ALL_ROWS
Parsing user id: 96 (recursive depth: 1)
Rows Row Source Operation
84758 MAT_VIEW ACCESS BY INDEX ROWID MYTABLE (cr=9249950 pr=66503 pw=0 time=884775284 us)
2393802 INDEX RANGE SCAN MY_UK (cr=6865057 pr=13578 pw=0 time=192128470 us)(object id 61483)When I create a new table with the just the columns in the query.
I put a unique index on it that includes the select query.
Why do I get an inlist iterator in my plan? If you look at the first query which has an index that does not include all the columns it does not do an inlist iterator and it only has 3 logical IOs.
Execution Plan
0 SELECT STATEMENT Optimizer=ALL_ROWS (Cost=3 Card=1 Bytes=34)
1 0 INLIST ITERATOR
2 1 INDEX (RANGE SCAN) OF 'MY_TEST' (INDEX (UNIQUE)) (Cost
=3 Card=1 Bytes=34) -
Confusion in FILTER and SORT operations in the execution plan
Hi
I have been working on tuning of a sql query:
SELECT SUM(DECODE(CR_FLG, 'C', NVL(TOT_AMT, 0), 0)),
SUM(DECODE(CR_FLG, 'C', 1, 0)),
SUM(DECODE(CR_FLG, 'R', NVL(TOT_AMT, 0), 0)),
SUM(DECODE(CR_FLG, 'R', 1, 0)),
SUM(DECODE(CR_FLG, 'C', NVL(TOT_AMT, 0), -1 * NVL(TOT_AMT, 0))),
SUM(1)
FROM TS_TEST
WHERE SMY_DT BETWEEN TO_DATE(:1, 'DD-MM-YYYY') AND
TO_DATE(:1, 'DD-MM-YYYY');Table TS_TEST is range partitioned on smy_dt and there is an index on smy_dt column. Explain plan of the query is:
SQL> explain plan for SELECT SUM(DECODE(CR_FLG, 'C', NVL(TOT_AMT, 0), 0)),
2 SUM(DECODE(CR_FLG, 'C', 1, 0)),
3 SUM(DECODE(CR_FLG, 'R', NVL(TOT_AMT, 0), 0)),
4 SUM(DECODE(CR_FLG, 'R', 1, 0)),
5 SUM(DECODE(CR_FLG, 'C', NVL(TOT_AMT, 0), -1 * NVL(TOT_AMT, 0))),
6 SUM(1)
7 FROM TS_TEST
8 WHERE SMY_DT BETWEEN TO_DATE(:1, 'DD-MM-YYYY') AND
9 TO_DATE(:1, 'DD-MM-YYYY');
Explained.
SQL> @E
PLAN_TABLE_OUTPUT
Plan hash value: 766961720
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time | Pstart| Pstop |
| 0 | SELECT STATEMENT | | 1 | 14 | 15614 (1)| 00:03:08 | | |
| 1 | SORT AGGREGATE | | 1 | 14 | | | | |
|* 2 | FILTER | | | | | | | |
| 3 | TABLE ACCESS BY GLOBAL INDEX ROWID| T_TEST | 79772 | 1090K| 15614 (1)| 00:03:08 | ROWID | ROWID |
|* 4 | INDEX RANGE SCAN | I_SMY_DT | 143K| | 442 (1)| 00:00:06 | | |
Predicate Information (identified by operation id):
2 - filter(TO_DATE(:1,'DD-MM-YYYY')<=TO_DATE(:1,'DD-MM-YYYY'))
4 - access("SMY_DT">=TO_DATE(:1,'DD-MM-YYYY') AND "SMY_DT"<=TO_DATE(:1,'DD-MM-YYYY'))
17 rows selected.
SQL>I am not able to understand the FILTER & SORT operations. As there is an index on SMY_DT column, so index range scan is fine. But why a FILTER (Step no 2) and SORT (Step no 1) operation after that ?
Oracle version is 10.2.0.3 on AIX 5.3 64 bit.
Any other information required please let me know.
Regards,
Amardeep SidhuSort aggregate tells you that there was performed an aggregate operation which returns one row, in opposite to sort order by or hash group by which indicates you have grouping, and there more than one row can be returned.
SQL> SELECT SUM(comm) FROM emp;
SUM(COMM)
2200
Plan wykonywania
Plan hash value: 2083865914
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
| 0 | SELECT STATEMENT | | 1 | 2 | 3 (0)| 00:00:01 |
| 1 | SORT AGGREGATE | | 1 | 2 | | |
| 2 | TABLE ACCESS FULL| EMP | 14 | 28 | 3 (0)| 00:00:01 |
SQL> SELECT AVG(comm) FROM emp;
AVG(COMM)
550
Plan wykonywania
Plan hash value: 2083865914
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
| 0 | SELECT STATEMENT | | 1 | 2 | 3 (0)| 00:00:01 |
| 1 | SORT AGGREGATE | | 1 | 2 | | |
| 2 | TABLE ACCESS FULL| EMP | 14 | 28 | 3 (0)| 00:00:01 |
SQL> SELECT MIN(comm) FROM emp;
MIN(COMM)
0
Plan wykonywania
Plan hash value: 2083865914
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
| 0 | SELECT STATEMENT | | 1 | 2 | 3 (0)| 00:00:01 |
| 1 | SORT AGGREGATE | | 1 | 2 | | |
| 2 | TABLE ACCESS FULL| EMP | 14 | 28 | 3 (0)| 00:00:01 |
SQL> SELECT deptno, SUM(comm) FROM emp GROUP BY deptno;
DEPTNO SUM(COMM)
30 2200
20
10
Plan wykonywania
Plan hash value: 4067220884
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
| 0 | SELECT STATEMENT | | 3 | 15 | 4 (25)| 00:00:01 |
| 1 | HASH GROUP BY | | 3 | 15 | 4 (25)| 00:00:01 |
| 2 | TABLE ACCESS FULL| EMP | 14 | 70 | 3 (0)| 00:00:01 |
SQL>Edited by: Łukasz Mastalerz on Jan 14, 2009 11:41 AM -
Help in understanding TKPROF output
Hi All,
Following is the TKPROF output of a user_dump_dest trace file, obtained by setting trace to 10046@level 12.
select "CHNNL"."CHNNL_BK" "C0", case "GEOG12"."SUB_STATE_PRVNC_CD" when
*:"SYS_B_000" then :"SYS_B_001" when :"SYS_B_002" then :"SYS_B_003" when*
*:"SYS_B_004" then :"SYS_B_005" when :"SYS_B_006" then :"SYS_B_007" when*
*:"SYS_B_008" then :"SYS_B_009" when :"SYS_B_010" then :"SYS_B_011" when*
*:"SYS_B_012" then :"SYS_B_013" else "GEOG12"."SUB_STATE_PRVNC_NAME_TXT" end*
*"C1", "TIME_PERIOD13"."MONTH_CD" "C2", lpad(to_char(EXTRACT( MONTH*
FROM
*(TIMESTAMP :"SYS_B_014") )), :"SYS_B_015", :"SYS_B_016") "C3", sum(case*
when "TIME_PERIOD13"."DAY_CLNDR_DATE"=TIMESTAMP :"SYS_B_017" then
*"SALES_FACT"."EXTND_NET_SALE_AMNT" else :"SYS_B_018" end ) over (partition*
by "CHNNL"."CHNNL_BK", case "GEOG12"."SUB_STATE_PRVNC_CD" when :"SYS_B_019"
then :"SYS_B_020" when :"SYS_B_021" then :"SYS_B_022" when :"SYS_B_023"
then :"SYS_B_024" when :"SYS_B_025" then :"SYS_B_026" when :"SYS_B_027"
then :"SYS_B_028" when :"SYS_B_029" then :"SYS_B_030" when :"SYS_B_031"
then :"SYS_B_032" else "GEOG12"."SUB_STATE_PRVNC_NAME_TXT" end ,
*"TIME_PERIOD13"."MONTH_CD") "C4", sum(case when*
*"TIME_PERIOD13"."DAY_CLNDR_DATE" between (TIMESTAMP :"SYS_B_033" -*
NUMTODSINTERVAL( EXTRACT( DAY FROM TIMESTAMP :"SYS_B_034" ), :"SYS_B_035" )
+ INTERVAL :"SYS_B_036" DAY) and TIMESTAMP :"SYS_B_037" then
*"SALES_FACT"."EXTND_NET_SALE_AMNT" else :"SYS_B_038" end ) over (partition*
by "CHNNL"."CHNNL_BK", case "GEOG12"."SUB_STATE_PRVNC_CD" when :"SYS_B_039"
then :"SYS_B_040" when :"SYS_B_041" then :"SYS_B_042" when :"SYS_B_043"
then :"SYS_B_044" when :"SYS_B_045" then :"SYS_B_046" when :"SYS_B_047"
then :"SYS_B_048" when :"SYS_B_049" then :"SYS_B_050" when :"SYS_B_051"
then :"SYS_B_052" else "GEOG12"."SUB_STATE_PRVNC_NAME_TXT" end ,
*"TIME_PERIOD13"."MONTH_CD") "C5", sum(case when*
*"TIME_PERIOD13"."DAY_CLNDR_DATE"=TIMESTAMP :"SYS_B_053" then*
*"SALES_FACT"."QTY_SOLD_IN_CASES" else :"SYS_B_054" end ) over (partition by*
*"CHNNL"."CHNNL_BK", case "GEOG12"."SUB_STATE_PRVNC_CD" when :"SYS_B_055"*
then :"SYS_B_056" when :"SYS_B_057" then :"SYS_B_058" when :"SYS_B_059"
then :"SYS_B_060" when :"SYS_B_061" then :"SYS_B_062" when :"SYS_B_063"
then :"SYS_B_064" when :"SYS_B_065" then :"SYS_B_066" when :"SYS_B_067"
then :"SYS_B_068" else "GEOG12"."SUB_STATE_PRVNC_NAME_TXT" end ,
*"TIME_PERIOD13"."MONTH_CD") "C6", sum(case when*
*"TIME_PERIOD13"."DAY_CLNDR_DATE" between (TIMESTAMP :"SYS_B_069" -*
NUMTODSINTERVAL( EXTRACT( DAY FROM TIMESTAMP :"SYS_B_070" ), :"SYS_B_071" )
+ INTERVAL :"SYS_B_072" DAY) and TIMESTAMP :"SYS_B_073" then
*"SALES_FACT"."QTY_SOLD_IN_CASES" else :"SYS_B_074" end ) over (partition by*
*"CHNNL"."CHNNL_BK", case "GEOG12"."SUB_STATE_PRVNC_CD" when :"SYS_B_075"*
then :"SYS_B_076" when :"SYS_B_077" then :"SYS_B_078" when :"SYS_B_079"
then :"SYS_B_080" when :"SYS_B_081" then :"SYS_B_082" when :"SYS_B_083"
then :"SYS_B_084" when :"SYS_B_085" then :"SYS_B_086" when :"SYS_B_087"
then :"SYS_B_088" else "GEOG12"."SUB_STATE_PRVNC_NAME_TXT" end ,
*"TIME_PERIOD13"."MONTH_CD") "C7", sum(case when*
*"TIME_PERIOD13"."DAY_CLNDR_DATE"=TIMESTAMP :"SYS_B_089" then*
*"SALES_FACT"."QTY_SOLD_IN_KLGMS" else :"SYS_B_090" end ) over (partition by*
*"CHNNL"."CHNNL_BK", case "GEOG12"."SUB_STATE_PRVNC_CD" when :"SYS_B_091"*
then :"SYS_B_092" when :"SYS_B_093" then :"SYS_B_094" when :"SYS_B_095"
then :"SYS_B_096" when :"SYS_B_097" then :"SYS_B_098" when :"SYS_B_099"
then :"SYS_B_100" when :"SYS_B_101" then :"SYS_B_102" when :"SYS_B_103"
then :"SYS_B_104" else "GEOG12"."SUB_STATE_PRVNC_NAME_TXT" end ,
*"TIME_PERIOD13"."MONTH_CD") "C8", sum(case when*
*"TIME_PERIOD13"."DAY_CLNDR_DATE" between (TIMESTAMP :"SYS_B_105" -*
NUMTODSINTERVAL( EXTRACT( DAY FROM TIMESTAMP :"SYS_B_106" ), :"SYS_B_107" )
+ INTERVAL :"SYS_B_108" DAY) and TIMESTAMP :"SYS_B_109" then
*"SALES_FACT"."QTY_SOLD_IN_KLGMS" else :"SYS_B_110" end ) over (partition by*
*"CHNNL"."CHNNL_BK", case "GEOG12"."SUB_STATE_PRVNC_CD" when :"SYS_B_111"*
then :"SYS_B_112" when :"SYS_B_113" then :"SYS_B_114" when :"SYS_B_115"
then :"SYS_B_116" when :"SYS_B_117" then :"SYS_B_118" when :"SYS_B_119"
then :"SYS_B_120" when :"SYS_B_121" then :"SYS_B_122" when :"SYS_B_123"
then :"SYS_B_124" else "GEOG12"."SUB_STATE_PRVNC_NAME_TXT" end ,
*"TIME_PERIOD13"."MONTH_CD") "C9", sum("SALES_FACT"."EXTND_GROSS_SALE_AMNT")*
over (partition by "CHNNL"."CHNNL_BK", case "GEOG12"."SUB_STATE_PRVNC_CD"
when :"SYS_B_125" then :"SYS_B_126" when :"SYS_B_127" then :"SYS_B_128"
when :"SYS_B_129" then :"SYS_B_130" when :"SYS_B_131" then :"SYS_B_132"
when :"SYS_B_133" then :"SYS_B_134" when :"SYS_B_135" then :"SYS_B_136"
when :"SYS_B_137" then :"SYS_B_138" else
*"GEOG12"."SUB_STATE_PRVNC_NAME_TXT" end , "TIME_PERIOD13"."MONTH_CD") "C10",*
*((sum(case when ("TIME_PERIOD13"."DAY_CLNDR_DATE"=TIMESTAMP :"SYS_B_139")*
then "SALES_FACT"."EXTND_NET_SALE_AMNT" else :"SYS_B_140" end ) over
*(partition by "CHNNL"."CHNNL_BK", case "GEOG12"."SUB_STATE_PRVNC_CD" when*
*:"SYS_B_141" then :"SYS_B_142" when :"SYS_B_143" then :"SYS_B_144" when*
*:"SYS_B_145" then :"SYS_B_146" when :"SYS_B_147" then :"SYS_B_148" when*
*:"SYS_B_149" then :"SYS_B_150" when :"SYS_B_151" then :"SYS_B_152" when*
*:"SYS_B_153" then :"SYS_B_154" else "GEOG12"."SUB_STATE_PRVNC_NAME_TXT" end*
*, "TIME_PERIOD13"."MONTH_CD")+sum(case when*
*"TIME_PERIOD13"."DAY_CLNDR_DATE" between (TIMESTAMP :"SYS_B_155" -*
NUMTODSINTERVAL( EXTRACT( DAY FROM TIMESTAMP :"SYS_B_156" ), :"SYS_B_157" )
+ INTERVAL :"SYS_B_158" DAY) and TIMESTAMP :"SYS_B_159" then
*"SALES_FACT"."EXTND_NET_SALE_AMNT" else :"SYS_B_160" end ) over (partition*
by "CHNNL"."CHNNL_BK", case "GEOG12"."SUB_STATE_PRVNC_CD" when :"SYS_B_161"
then :"SYS_B_162" when :"SYS_B_163" then :"SYS_B_164" when :"SYS_B_165"
then :"SYS_B_166" when :"SYS_B_167" then :"SYS_B_168" when :"SYS_B_169"
then :"SYS_B_170" when :"SYS_B_171" then :"SYS_B_172" when :"SYS_B_173"
then :"SYS_B_174" else "GEOG12"."SUB_STATE_PRVNC_NAME_TXT" end ,
*"TIME_PERIOD13"."MONTH_CD"))+(sum(case when*
*("TIME_PERIOD13"."DAY_CLNDR_DATE"=TIMESTAMP :"SYS_B_175") then*
*"SALES_FACT"."QTY_SOLD_IN_CASES" else :"SYS_B_176" end ) over (partition by*
*"CHNNL"."CHNNL_BK", case "GEOG12"."SUB_STATE_PRVNC_CD" when :"SYS_B_177"*
then :"SYS_B_178" when :"SYS_B_179" then :"SYS_B_180" when :"SYS_B_181"
then :"SYS_B_182" when :"SYS_B_183" then :"SYS_B_184" when :"SYS_B_185"
then :"SYS_B_186" when :"SYS_B_187" then :"SYS_B_188" when :"SYS_B_189"
then :"SYS_B_190" else "GEOG12"."SUB_STATE_PRVNC_NAME_TXT" end ,
*"TIME_PERIOD13"."MONTH_CD")+sum(case when "TIME_PERIOD13"."DAY_CLNDR_DATE"*
between (TIMESTAMP :"SYS_B_191" - NUMTODSINTERVAL( EXTRACT( DAY FROM
TIMESTAMP :"SYS_B_192" ), :"SYS_B_193" ) + INTERVAL :"SYS_B_194" DAY) and
TIMESTAMP :"SYS_B_195" then "SALES_FACT"."QTY_SOLD_IN_CASES" else
*:"SYS_B_196" end ) over (partition by "CHNNL"."CHNNL_BK", case*
*"GEOG12"."SUB_STATE_PRVNC_CD" when :"SYS_B_197" then :"SYS_B_198" when*
*:"SYS_B_199" then :"SYS_B_200" when :"SYS_B_201" then :"SYS_B_202" when*
*:"SYS_B_203" then :"SYS_B_204" when :"SYS_B_205" then :"SYS_B_206" when*
*:"SYS_B_207" then :"SYS_B_208" when :"SYS_B_209" then :"SYS_B_210" else*
*"GEOG12"."SUB_STATE_PRVNC_NAME_TXT" end , "TIME_PERIOD13"."MONTH_CD")))*
+(sum(case when ("TIME_PERIOD13"."DAY_CLNDR_DATE"=TIMESTAMP :"SYS_B_211")
then "SALES_FACT"."QTY_SOLD_IN_KLGMS" else :"SYS_B_212" end ) over
*(partition by "CHNNL"."CHNNL_BK", case "GEOG12"."SUB_STATE_PRVNC_CD" when*
*:"SYS_B_213" then :"SYS_B_214" when :"SYS_B_215" then :"SYS_B_216" when*
*:"SYS_B_217" then :"SYS_B_218" when :"SYS_B_219" then :"SYS_B_220" when*
*:"SYS_B_221" then :"SYS_B_222" when :"SYS_B_223" then :"SYS_B_224" when*
*:"SYS_B_225" then :"SYS_B_226" else "GEOG12"."SUB_STATE_PRVNC_NAME_TXT" end*
*, "TIME_PERIOD13"."MONTH_CD")+sum(case when*
*"TIME_PERIOD13"."DAY_CLNDR_DATE" between (TIMESTAMP :"SYS_B_227" -*
NUMTODSINTERVAL( EXTRACT( DAY FROM TIMESTAMP :"SYS_B_228" ), :"SYS_B_229" )
+ INTERVAL :"SYS_B_230" DAY) and TIMESTAMP :"SYS_B_231" then
*"SALES_FACT"."QTY_SOLD_IN_KLGMS" else :"SYS_B_232" end ) over (partition by*
*"CHNNL"."CHNNL_BK", case "GEOG12"."SUB_STATE_PRVNC_CD" when :"SYS_B_233"*
then :"SYS_B_234" when :"SYS_B_235" then :"SYS_B_236" when :"SYS_B_237"
then :"SYS_B_238" when :"SYS_B_239" then :"SYS_B_240" when :"SYS_B_241"
then :"SYS_B_242" when :"SYS_B_243" then :"SYS_B_244" when :"SYS_B_245"
then :"SYS_B_246" else "GEOG12"."SUB_STATE_PRVNC_NAME_TXT" end ,
*"TIME_PERIOD13"."MONTH_CD")) "C11" from "THA_SALES_DBA"."CHNNL" "CHNNL",*
*(select "GEOG"."GEOG_KEY" "GEOG_KEY", "GEOG"."SUB_STATE_PRVNC_CD"*
*"SUB_STATE_PRVNC_CD", "GEOG"."SUB_STATE_PRVNC_NAME_TXT"*
*"SUB_STATE_PRVNC_NAME_TXT" from "THA_SALES_DBA"."GEOG" "GEOG" where*
*"GEOG"."SUB_STATE_PRVNC_LOAD_DATA_TYPE"=:"SYS_B_247") "GEOG12",*
*"THA_SALES_DBA"."TIME_PERIOD" "TIME_PERIOD13", "THA_SALES_DBA"."SALES_FACT"*
*"SALES_FACT", (select "PROD"."PROD_KEY" "PROD_KEY", "PROD"."PROD_DVSN_CD"*
*"PROD_DVSN_CD", "PROD"."PCKG_SIZE_CD" "PCKG_SIZE_CD" from*
*"THA_SALES_DBA"."PROD" "PROD" where "PROD"."LOAD_DATA_TYPE_CD"=:"SYS_B_248")*
*"PROD14", "THA_SALES_DBA"."DSTRBTR" "DSTRBTR" where*
*"PROD14"."PROD_DVSN_CD"=:"SYS_B_249" and "PROD14"."PCKG_SIZE_CD"=*
*:"SYS_B_250" and "DSTRBTR"."DSTRBTR_CD"<>:"SYS_B_251" and CASE*
WHEN("DSTRBTR"."DSTRBTR_CD" IS NULL) OR ("CHNNL"."CHNNL_BK" IS NULL) THEN
NULL ELSE ("DSTRBTR"."DSTRBTR_CD"||"CHNNL"."CHNNL_BK") END<>:"SYS_B_252"
and "SALES_FACT"."CHNNL_KEY"="CHNNL"."CHNNL_KEY" and
*"SALES_FACT"."DSTRBTR_KEY"="DSTRBTR"."DSTRBTR_KEY" and*
*"SALES_FACT"."GEOG_KEY"="GEOG12"."GEOG_KEY" and "SALES_FACT"."PROD_KEY"=*
*"PROD14"."PROD_KEY" and "SALES_FACT"."TIME_PERIOD_KEY"=*
*"TIME_PERIOD13"."TIME_PERIOD_KEY"*
call count cpu elapsed disk query current rows
Parse 1 0.01 0.00 0 0 0 0
Execute 1 0.01 0.01 0 0 0 0
Fetch 7632 129.92 245.70 406278 12619 35 763042
total 7634 129.95 245.73 406278 12619 35 763042
Misses in library cache during parse: 1
Optimizer mode: ALL_ROWS
Parsing user id: 68
Rows Row Source Operation
*763042 WINDOW BUFFER (cr=12619 pr=406278 pw=257613 time=239232878 us)*
*763042 WINDOW BUFFER (cr=12619 pr=372409 pw=237458 time=217248824 us)*
*763042 WINDOW BUFFER (cr=12619 pr=339595 pw=217662 time=194593662 us)*
*763042 WINDOW BUFFER (cr=12619 pr=307255 pw=198149 time=177438908 us)*
*763042 WINDOW BUFFER (cr=12619 pr=275292 pw=178940 time=157976971 us)*
*763042 WINDOW BUFFER (cr=12619 pr=244097 pw=160017 time=139997871 us)*
*763042 WINDOW BUFFER (cr=12619 pr=213275 pw=141404 time=119675383 us)*
*763042 WINDOW BUFFER (cr=12619 pr=184170 pw=123525 time=105714100 us)*
*763042 WINDOW BUFFER (cr=12619 pr=155800 pw=105953 time=88478655 us)*
*763042 WINDOW BUFFER (cr=12619 pr=128025 pw=88650 time=71243641 us)*
*763042 WINDOW BUFFER (cr=12619 pr=100871 pw=71641 time=54047210 us)*
*763042 WINDOW BUFFER (cr=12619 pr=73821 pw=54957 time=35324144 us)*
*763042 WINDOW SORT (cr=12619 pr=48205 pw=38587 time=18865032 us)*
*763042 HASH JOIN (cr=12619 pr=0 pw=0 time=3127703 us)*
*15098 TABLE ACCESS FULL TIME_PERIOD (cr=693 pr=0 pw=0 time=15216 us)*
*763042 HASH JOIN (cr=11926 pr=0 pw=0 time=2344335 us)*
*1845 TABLE ACCESS FULL GEOG (cr=92 pr=0 pw=0 time=1910 us)*
*763194 HASH JOIN (cr=11834 pr=0 pw=0 time=1577327 us)*
*11 TABLE ACCESS FULL CHNNL (cr=7 pr=0 pw=0 time=47 us)*
*765432 HASH JOIN (cr=11827 pr=0 pw=0 time=1580849 us)*
*2 TABLE ACCESS FULL DSTRBTR (cr=7 pr=0 pw=0 time=50 us)*
*765432 HASH JOIN (cr=11820 pr=0 pw=0 time=814835 us)*
*313 TABLE ACCESS FULL PROD (cr=174 pr=0 pw=0 time=1195 us)*
*1045260 TABLE ACCESS FULL SALES_FACT (cr=11646 pr=0 pw=0 time=31 us)*
Elapsed times include waiting on following events:
Event waited on Times Max. Wait Total Waited
---------------------------------------- Waited ---------- ------------
SQLNet message to client 7633 0.00 0.01*
SQLNet message from client 7633 1826.57 2334.17*
SQLNet more data from client 1 0.00 0.00*
direct path write temp 5332 0.09 6.23
direct path read temp 389239 0.09 115.09
The query is automatically generated by Cognos 8.2. The database is 64-bit Oracle 10.2.0.4 on Windows 2003 Enterprise Edition R2.
I am unable to understand the "*WINDOW BUFFER/WINDOW SORT*" statement under the Row Source Operation. Could one of you please explain this operation to me?
Thanks and Regards,
SriramanThe WINDOW BUFFER/WINDOW SORT operations are used when processing analytical SQLs, you can see these in your SQL statement. In WINDOW BUFFER the SQL engine do calculations above some buffered data subset and in the WINDOW SORT data subsets are being sorted.
Dusan -
Tkprof output.. identification
oracle 10.2.0.2.0
os : linux
What are the assumptions can be derived from the output
TKPROF: Release 10.2.0.2.0 - Production on Thu Jun 12 09:25:26 2008
Copyright (c) 1982, 2005, Oracle. All rights reserved.
Trace file: tld4_ora_5894.trc
Sort options: fchela
count = number of times OCI procedure was executed
cpu = cpu time in seconds executing
elapsed = elapsed time in seconds executing
disk = number of physical reads of buffers from disk
query = number of buffers gotten for consistent read
current = number of buffers gotten in current mode (usually for update)
rows = number of rows processed by the fetch or execute call
SELECT *
FROM (SELECT elance_paginated_data.*, ROWNUM elance_current_row_number
FROM (SELECT elance_original_data.*
FROM (SELECT /*+ ordered use_nl(pm) use_hash(pm) use_nl(sph) index(pm PER_RFX_ID_TY_LATEST)*/ pm.loc_id, pm.poc_user_id, pm.ID, pm.code,
pm.NAME, pm.rfx_cost_estimate_base,
pm.date_created, pm.status_id,
pm.version_number, pm.latest_ind,
pm.cat_id cat_id, pm.sponsored_by_org_id,
pm.project_manager_id,
(SELECT COUNT (props.ID)
FROM spm_proposal_rfx pr,
spm_proposals props
WHERE pr.rfx_id = pm.ID
AND pr.proposal_id = props.ID
AND props.status_id NOT IN (8101, 8108))
number_of_proposals,
ch.contract_id,
con.xref_contract xref_contract,
sph.item_property_id process_type
FROM spm_rfx pm,
spm_contracts_hub ch,
spm_contracts con,
spm_properties_hub sph
WHERE pm.ID > 0
AND pm.rfx_type = 'REQUEST'
AND pm.latest_ind = 'Y'
AND pm.ID = ch.rfx_id
AND pm.owner_id = 4000
AND pm.rfx_type = ch.type_of
AND EXISTS (
SELECT 1
FROM spm_user_folder_details ufd
WHERE ufd.contract_id = con.ID
AND ufd.user_id IN (
SELECT ru.role_id
FROM spm_role_users ru,
spm_roles r
WHERE ru.user_id = 29 /* Change for GE env. : changed value from 257698 to 29 */
AND ru.role_id = r.ID
AND r.type_of =
'ROLE_GROUP_TYPE'
UNION ALL
SELECT 29
FROM DUAL))
AND con.ID = ch.contract_id
AND sph.rfx_id = pm.ID
AND sph.type_of = pm.rfx_type
ORDER BY pm.ID DESC) elance_original_data) elance_paginated_data
WHERE ROWNUM <= 31)
WHERE elance_current_row_number >= 1
call count cpu elapsed disk query current rows
Parse 1 0.65 0.64 1 130 0 0
Execute 1 0.00 0.00 0 0 0 0
Fetch 4 9.55 29.16 10039 186553 0 31
total 6 10.20 29.80 10040 186683 0 31
Misses in library cache during parse: 1
Optimizer mode: CHOOSE
Parsing user id: 21 (TLADM01)
Rows Row Source Operation
31 VIEW (cr=186553 pr=10039 pw=0 time=29145812 us)
31 COUNT STOPKEY (cr=186553 pr=10039 pw=0 time=29145749 us)
31 FILTER (cr=186553 pr=10039 pw=0 time=29145727 us)
31 VIEW (cr=185329 pr=10037 pw=0 time=29114147 us)
31 SORT ORDER BY (cr=185329 pr=10037 pw=0 time=29113913 us)
29536 TABLE ACCESS BY INDEX ROWID SPM_PROPERTIES_HUB (cr=81535 pr=9636 pw=0 time=30161718 us)
59073 NESTED LOOPS (cr=70280 pr=2137 pw=0 time=350415773 us)
29536 HASH JOIN (cr=11107 pr=2078 pw=0 time=4575599 us)
29536 HASH JOIN (cr=1900 pr=1891 pw=0 time=3358329 us)
29536 TABLE ACCESS FULL SPM_RFX (cr=1068 pr=1066 pw=0 time=2287845 us)
30935 INDEX FAST FULL SCAN PF_TEST_CHUB_IDX (cr=832 pr=825 pw=0 time=2280408 us)(object id 32367)
181203 TABLE ACCESS FULL SPM_CONTRACTS (cr=9207 pr=187 pw=0 time=2356208 us)
29536 INDEX RANGE SCAN PROPERTY_TYPE_RFX_IDX (cr=59173 pr=59 pw=0 time=994586 us)(object id 30553)
31 NESTED LOOPS (cr=1224 pr=2 pw=0 time=47898 us)
242 VIEW VW_NSO_1 (cr=708 pr=1 pw=0 time=29700 us)
242 UNION-ALL (cr=708 pr=1 pw=0 time=29430 us)
242 NESTED LOOPS (cr=708 pr=1 pw=0 time=28870 us)
645 INDEX RANGE SCAN ROLE_TYPE_NDX (cr=31 pr=1 pw=0 time=11764 us)(object id 30685)
242 INDEX UNIQUE SCAN ROLE_USERS_PK (cr=677 pr=0 pw=0 time=6000 us)(object id 30691)
0 FAST DUAL (cr=0 pr=0 pw=0 time=0 us)
31 INDEX RANGE SCAN UFD_CONTRACT_FK_I (cr=516 pr=1 pw=0 time=28952 us)(object id 30848)
Rows Execution Plan
0 SELECT STATEMENT MODE: CHOOSE
31 VIEW
31 COUNT (STOPKEY)
31 FILTER
31 VIEW
31 SORT (ORDER BY)
29536 TABLE ACCESS MODE: ANALYZED (BY INDEX ROWID) OF
'SPM_PROPERTIES_HUB' (TABLE)
59073 NESTED LOOPS
29536 HASH JOIN
29536 HASH JOIN
29536 TABLE ACCESS MODE: ANALYZED (FULL) OF
'SPM_RFX' (TABLE)
30935 INDEX MODE: ANALYZED (FAST FULL SCAN) OF
'PF_TEST_CHUB_IDX' (INDEX)
181203 TABLE ACCESS MODE: ANALYZED (FULL) OF
'SPM_CONTRACTS' (TABLE)
29536 INDEX MODE: ANALYZED (RANGE SCAN) OF
'PROPERTY_TYPE_RFX_IDX' (INDEX)
31 NESTED LOOPS
242 VIEW OF 'VW_NSO_1' (VIEW)
242 UNION-ALL
242 NESTED LOOPS
645 INDEX MODE: ANALYZED (RANGE SCAN) OF
'ROLE_TYPE_NDX' (INDEX)
242 INDEX MODE: ANALYZED (UNIQUE SCAN) OF
'ROLE_USERS_PK' (INDEX (UNIQUE))
0 FAST DUAL
31 INDEX MODE: ANALYZED (RANGE SCAN) OF
'UFD_CONTRACT_FK_I' (INDEX)
SELECT *
FROM (SELECT elance_paginated_data.*, ROWNUM elance_current_row_number
FROM (SELECT elance_original_data.*
FROM (SELECT /*+ FIRST_ROWS ordered use_nl(con) use_nl(vp)*/
vp.primary_contact_userid, con.ID, con.code,
con.type_of_sub_contract, con.NAME,
con.org_id, con.cat_id, con.ccy_code,
con.end_dt, con.start_dt, con.date_created,
con.xref_contract extrefrequestid,
con.vendor_id, con.status_id,
vp.NAME vendor_name, buyer.NAME AS org_name,
con.created_by,
contract_pcr.CHILD change_order_id,
NVL
(con.change_contract_status_id,
-1
) AS change_contract_status_id,
(SELECT approved_amount
FROM spm_order_summary sos
WHERE sos.contract_id = con.ID
AND sos.po_id = sos.master_po_id)
est_value,
(SELECT billable_amount
FROM spm_order_summary sos
WHERE sos.contract_id = con.ID
AND sos.po_id = sos.master_po_id)
invoicableamount
FROM spm_contracts con,
(SELECT contract_id_parent PARENT,
contract_id_child CHILD
FROM spm_contract_pcr cp
WHERE cp.type_of_relation =
'CONTR_NEW_VERSION') contract_pcr,
spm_vendor_profiles vp,
spm_contracts_hub hub1,
spm_orgs orgs,
spm_orgs buyer
WHERE con.owner_id = 4000 /* Change for GE env. : changed value from 100 to 4000 */
AND EXISTS (
SELECT 1
FROM spm_user_folder_details ufd
WHERE ufd.contract_id = con.ID
AND ufd.user_id IN (
SELECT ru.role_id
FROM spm_role_users ru,
spm_roles r
WHERE ru.user_id = 29 /* Change for GE env. : changed value from 257698 to 29 */
AND ru.role_id = r.ID
AND r.type_of =
'ROLE_GROUP_TYPE'
UNION ALL
SELECT 29 /* Change for GE env. : changed value from 257698 to 29 */
FROM DUAL))
AND ( con.version_number = 1
OR NOT EXISTS (
SELECT /*+ use_nl(pcr) */ 1
FROM spm_contract_pcr pcr,
spm_contracts ord2
WHERE pcr.contract_id_child = con.ID
AND pcr.type_of_relation =
'CONTR_NEW_VERSION'
AND pcr.contract_id_parent =
ord2.ID
AND ( ord2.status_id = 2612
OR ( ord2.status_id = 2611
AND con.status_id NOT IN
(2612,
2604,
2611,
2609,
2610
AND con.contract_type_id = 322
AND con.ID = contract_pcr.PARENT(+)
AND con.ID = hub1.contract_id
AND hub1.type_of != 'PROJECT_CONTRACT'
AND orgs.ID = con.org_id
AND orgs.legal_org_id = buyer.ID
AND vp.vendor_id = con.vendor_id
AND con.status_id NOT IN (-1)
AND NLS_UPPER (con.NAME) LIKE NLS_UPPER ('%%')
ORDER BY con.date_created DESC) elance_original_data) elance_paginated_data
WHERE ROWNUM <= 31)
WHERE elance_current_row_number >= 1
call count cpu elapsed disk query current rows
Parse 1 0.74 0.71 0 0 0 0
Execute 1 0.00 0.00 0 0 0 0
Fetch 4 24.29 28.98 1001 826860 0 31
total 6 25.03 29.69 1001 826860 0 31
Misses in library cache during parse: 1
Optimizer mode: FIRST_ROWS
Parsing user id: 21 (TLADM01)
Rows Row Source Operation
31 VIEW (cr=826860 pr=1001 pw=0 time=28977412 us)
31 COUNT STOPKEY (cr=826860 pr=1001 pw=0 time=28977363 us)
31 VIEW (cr=826860 pr=1001 pw=0 time=28977339 us)
31 SORT ORDER BY STOPKEY (cr=826860 pr=1001 pw=0 time=28977308 us)
76885 FILTER (cr=482076 pr=426 pw=0 time=17625245 us)
76986 HASH JOIN (cr=430532 pr=160 pw=0 time=14013505 us)
1436 VIEW index$_join$_012 (cr=23 pr=0 pw=0 time=16833 us)
1436 HASH JOIN (cr=23 pr=0 pw=0 time=15394 us)
1436 INDEX FAST FULL SCAN ORG_PK (cr=9 pr=0 pw=0 time=511 us)(object id 30407)
1436 INDEX FAST FULL SCAN PF_ORG_NAME (cr=14 pr=0 pw=0 time=140 us)(object id 32369)
76986 HASH JOIN (cr=430509 pr=160 pw=0 time=13604330 us)
234 VIEW index$_join$_011 (cr=18 pr=0 pw=0 time=4429 us)
234 HASH JOIN (cr=18 pr=0 pw=0 time=4427 us)
234 INDEX FAST FULL SCAN SPM_ORGS_MHP1_IDX (cr=9 pr=0 pw=0 time=325 us)(object id 30398)
1436 INDEX FAST FULL SCAN ORG_PK (cr=9 pr=0 pw=0 time=62 us)(object id 30407)
76986 HASH JOIN (cr=430491 pr=160 pw=0 time=13360369 us)
76986 TABLE ACCESS BY INDEX ROWID SPM_VENDOR_PROFILES (cr=429740 pr=106 pw=0 time=12146037 us)
153973 NESTED LOOPS (cr=377498 pr=99 pw=0 time=105010507 us)
76986 HASH JOIN RIGHT OUTER (cr=300158 pr=99 pw=0 time=8281127 us)
7515 INDEX FAST FULL SCAN CONTRACT_PCR_PK (cr=643 pr=30 pw=0 time=46192 us)(object id 30115)
76986 NESTED LOOPS (cr=299515 pr=69 pw=0 time=7155318 us)
149239 VIEW VW_SQ_2 (cr=724 pr=0 pw=0 time=749186 us)
149239 HASH UNIQUE (cr=724 pr=0 pw=0 time=599938 us)
197161 NESTED LOOPS (cr=724 pr=0 pw=0 time=394773 us)
9 VIEW VW_NSO_1 (cr=100 pr=0 pw=0 time=1160 us)
9 UNION-ALL (cr=100 pr=0 pw=0 time=1138 us)
8 NESTED LOOPS (cr=100 pr=0 pw=0 time=1004 us)
97 INDEX RANGE SCAN ROLE_TYPE_NDX (cr=1 pr=0 pw=0 time=368 us)(object id 30685)
8 INDEX UNIQUE SCAN ROLE_USERS_PK (cr=99 pr=0 pw=0 time=964 us)(object id 30691)
1 FAST DUAL (cr=0 pr=0 pw=0 time=4 us)
197161 INDEX RANGE SCAN UFD_CONTRACT_FK_I (cr=624 pr=0 pw=0 time=197535 us)(object id 30848)
76986 TABLE ACCESS BY INDEX ROWID SPM_CONTRACTS (cr=298791 pr=69 pw=0 time=6642668 us)
149238 INDEX UNIQUE SCAN CONTRACTS_PK (cr=149553 pr=0 pw=0 time=2335192 us)(object id 30085)
76986 INDEX RANGE SCAN VNDR_PROF_VNDR_FK_I (cr=77340 pr=0 pw=0 time=1613500 us)(object id 30959)
202239 INDEX FAST FULL SCAN CONT_HUB_CONTID_TYPEOF_IDX (cr=751 pr=54 pw=0 time=218580 us)(object id 30101)
101 NESTED LOOPS (cr=51544 pr=266 pw=0 time=2191923 us)
7515 TABLE ACCESS BY INDEX ROWID SPM_CONTRACT_PCR (cr=28999 pr=266 pw=0 time=1779904 us)
17120 INDEX RANGE SCAN CONTRACT_PCR_CHILD_FK_I (cr=19262 pr=80 pw=0 time=583382 us)(object id 30116)
101 TABLE ACCESS BY INDEX ROWID SPM_CONTRACTS (cr=22545 pr=0 pw=0 time=383707 us)
7515 INDEX UNIQUE SCAN CONTRACTS_PK (cr=15030 pr=0 pw=0 time=226188 us)(object id 30085)
Rows Execution Plan
0 SELECT STATEMENT MODE: HINT: FIRST_ROWS
31 VIEW
31 COUNT (STOPKEY)
31 VIEW
31 SORT (ORDER BY STOPKEY)
76885 FILTER
76986 HASH JOIN
1436 VIEW OF 'index$_join$_012' (VIEW)
1436 HASH JOIN
1436 INDEX MODE: ANALYZED (FAST FULL SCAN) OF
'ORG_PK' (INDEX (UNIQUE))
1436 INDEX MODE: ANALYZED (FAST FULL SCAN) OF
'PF_ORG_NAME' (INDEX)
76986 HASH JOIN
234 VIEW OF 'index$_join$_011' (VIEW)
234 HASH JOIN
234 INDEX MODE: ANALYZED (FAST FULL SCAN) OF
'SPM_ORGS_MHP1_IDX' (INDEX)
1436 INDEX MODE: ANALYZED (FAST FULL SCAN) OF
'ORG_PK' (INDEX (UNIQUE))
76986 HASH JOIN
76986 TABLE ACCESS MODE: ANALYZED (BY INDEX ROWID)
OF 'SPM_VENDOR_PROFILES' (TABLE)
153973 NESTED LOOPS
76986 HASH JOIN (RIGHT OUTER)
7515 INDEX MODE: ANALYZED (FAST FULL SCAN) OF
'CONTRACT_PCR_PK' (INDEX (UNIQUE))
76986 NESTED LOOPS
149239 VIEW OF 'VW_SQ_2' (VIEW)
149239 HASH (UNIQUE)
197161 NESTED LOOPS
9 VIEW OF 'VW_NSO_1' (VIEW)
9 UNION-ALL
8 NESTED LOOPS
97 INDEX MODE: ANALYZED
(RANGE SCAN) OF 'ROLE_TYPE_NDX' (INDEX)
8 INDEX MODE: ANALYZED
(UNIQUE SCAN) OF 'ROLE_USERS_PK' (INDEX
(UNIQUE))
1 FAST DUAL
197161 INDEX MODE: ANALYZED (RANGE SCAN)
OF 'UFD_CONTRACT_FK_I' (INDEX)
76986 TABLE ACCESS MODE: ANALYZED (BY INDEX
ROWID) OF 'SPM_CONTRACTS' (TABLE)
149238 INDEX MODE: ANALYZED (UNIQUE SCAN)
OF 'CONTRACTS_PK' (INDEX (UNIQUE))
76986 INDEX MODE: ANALYZED (RANGE SCAN) OF
'VNDR_PROF_VNDR_FK_I' (INDEX)
202239 INDEX MODE: ANALYZED (FAST FULL SCAN) OF
'CONT_HUB_CONTID_TYPEOF_IDX' (INDEX)
101 NESTED LOOPS
7515 TABLE ACCESS MODE: ANALYZED (BY INDEX ROWID) OF
'SPM_CONTRACT_PCR' (TABLE)
17120 INDEX MODE: ANALYZED (RANGE SCAN) OF
'CONTRACT_PCR_CHILD_FK_I' (INDEX)
101 TABLE ACCESS MODE: ANALYZED (BY INDEX ROWID) OF
'SPM_CONTRACTS' (TABLE)
7515 INDEX MODE: ANALYZED (UNIQUE SCAN) OF
'CONTRACTS_PK' (INDEX (UNIQUE))
SELECT *
FROM (SELECT elance_paginated_data.*, ROWNUM elance_current_row_number
FROM (SELECT elance_original_data.*
FROM (SELECT /*+first_rows ordered use_nl(cont) use_nl(conthub) use_nl(sps) */
cont.ID AS workorderid,
cont.status_id AS statusid,
cont.code AS workordercode,
cont.NAME AS workordertitle,
cont.description AS workorderdescription,
cont.start_dt AS startdate,
cont.end_dt AS enddate,
cont.termination_dt AS terminationdate,
cont.user_id AS hiring_manager_user_id,
cont.org_id AS org_id,
conthub.user_id AS contractorid,
-- cand.last_name AS last_name,
cand.last_name
|| ', '
|| cand.first_name AS candidatename,
cand.became_userid AS became_userid,
su.display_name AS hiring_manager_name,
ord.cat_id AS cat_id, ord.ID AS order_id,
ord.code AS order_code,
ord.NAME AS order_name,
ord.version_number AS version_number
FROM spm_contracts cont,
spm_contracts_hub conthub,
spm_candidates cand,
spm_users su,
spm_pmt_sched_hub spsh,
spm_payment_schedule sps,
spm_contracts ord
WHERE cont.owner_id = 4000 /* Change for GE env. : changed value from 100 to 4000 */
AND cont.contract_type_id = 323
AND cont.status_id IN (8705, 8709, 8708, 8702)
AND EXISTS (
SELECT 1
FROM spm_user_folder_details ufd
WHERE ufd.contract_id = cont.ID
AND ufd.user_id IN (
SELECT ru.role_id
FROM spm_role_users ru,
spm_roles r
WHERE ru.user_id = 29 /* Change for GE env. : changed value from 257698 to 29 */
AND ru.role_id = r.ID
AND r.type_of =
'ROLE_GROUP_TYPE'
UNION ALL
SELECT 29 /* Change for GE env. : changed value from 257698 to 29 */
FROM DUAL))
AND NOT EXISTS (
SELECT /*+ use_nl(pcr) */ 1
FROM spm_contract_pcr pcr,
spm_contracts ord2
WHERE pcr.contract_id_child = ord.ID
AND pcr.contract_id_parent = ord2.ID
AND ord2.status_id = 2612
AND pcr.type_of_relation IN
('CONTR_NEW_VERSION',
'CONTRACTOR_REENGAGED'
AND cont.ID = conthub.contract_id
AND conthub.type_of = 'CANDIDATE'
AND conthub.candidate_id = cand.ID
AND cont.user_id = su.ID
AND cont.ID = spsh.contract_id
AND spsh.pmt_sched_id = sps.ID
AND sps.contract_id = ord.ID
ORDER BY workorderid DESC) elance_original_data) elance_paginated_data
WHERE ROWNUM <= 31)
WHERE elance_current_row_number >= 1
call count cpu elapsed disk query current rows
Parse 1 0.60 0.57 1 148 0 0
Execute 1 0.00 0.00 0 0 0 0
Fetch 4 12.70 21.37 3459 481585 0 31
total 6 13.30 21.94 3460 481733 0 31
Misses in library cache during parse: 1
Optimizer mode: FIRST_ROWS
Parsing user id: 21 (TLADM01)
Rows Row Source Operation
31 VIEW (cr=481585 pr=3459 pw=0 time=21365544 us)
31 COUNT STOPKEY (cr=481585 pr=3459 pw=0 time=21365480 us)
31 FILTER (cr=481585 pr=3459 pw=0 time=21365455 us)
31 VIEW (cr=481491 pr=3459 pw=0 time=21366696 us)
31 SORT ORDER BY (cr=481491 pr=3459 pw=0 time=21366310 us)
32745 NESTED LOOPS (cr=481491 pr=3459 pw=0 time=19266638 us)
32745 NESTED LOOPS (cr=415999 pr=3459 pw=0 time=18415173 us)
32745 HASH JOIN (cr=350507 pr=2907 pw=0 time=16695622 us)
32745 HASH JOIN (cr=349756 pr=2823 pw=0 time=16056095 us)
32745 HASH JOIN (cr=349581 pr=2780 pw=0 time=16950617 us)
32745 TABLE ACCESS BY INDEX ROWID SPM_CONTRACTS_HUB (cr=347407 pr=610 pw=0 time=8351793 us)
65491 NESTED LOOPS (cr=332023 pr=338 pw=0 time=105243492 us)
32745 NESTED LOOPS (cr=299202 pr=298 pw=0 time=6616161 us)
149239 VIEW VW_SQ_2 (cr=724 pr=53 pw=0 time=1118731 us)
149239 HASH UNIQUE (cr=724 pr=53 pw=0 time=969487 us)
197161 NESTED LOOPS (cr=724 pr=53 pw=0 time=394854 us)
9 VIEW VW_NSO_1 (cr=100 pr=0 pw=0 time=1288 us)
9 UNION-ALL (cr=100 pr=0 pw=0 time=1269 us)
8 NESTED LOOPS (cr=100 pr=0 pw=0 time=1133 us)
97 INDEX RANGE SCAN ROLE_TYPE_NDX (cr=1 pr=0 pw=0 time=514 us)(object id 30685)
8 INDEX UNIQUE SCAN ROLE_USERS_PK (cr=99 pr=0 pw=0 time=1140 us)(object id 30691)
1 FAST DUAL (cr=0 pr=0 pw=0 time=4 us)
197161 INDEX RANGE SCAN UFD_CONTRACT_FK_I (cr=624 pr=53 pw=0 time=197643 us)(object id 30848)
32745 TABLE ACCESS BY INDEX ROWID SPM_CONTRACTS (cr=298478 pr=245 pw=0 time=7787761 us)
149238 INDEX UNIQUE SCAN CONTRACTS_PK (cr=149240 pr=59 pw=0 time=2627776 us)(object id 30085)
32745 INDEX RANGE SCAN CONT_HUB_CONTRACT_FK_I (cr=32821 pr=40 pw=0 time=1129934 us)(object id 30106)
44590 TABLE ACCESS FULL SPM_CANDIDATES (cr=2174 pr=2170 pw=0 time=695935 us)
35864 INDEX FAST FULL SCAN SPM_USERS_SNZ1_IDX (cr=175 pr=43 pw=0 time=49486 us)(object id 30832)
44547 INDEX FAST FULL SCAN PMT_SCHED_HUB_IDX_1 (cr=751 pr=84 pw=0 time=101490 us)(object id 30474)
32745 TABLE ACCESS BY INDEX ROWID SPM_PAYMENT_SCHEDULE (cr=65492 pr=552 pw=0 time=3084181 us)
32745 INDEX UNIQUE SCAN PMT_SCHED_PK (cr=32747 pr=34 pw=0 time=512373 us)(object id 30427)
32745 TABLE ACCESS BY INDEX ROWID SPM_CONTRACTS (cr=65492 pr=0 pw=0 time=820633 us)
32745 INDEX UNIQUE SCAN CONTRACTS_PK (cr=32747 pr=0 pw=0 time=344850 us)(object id 30085)
0 NESTED LOOPS (cr=94 pr=0 pw=0 time=3048 us)
8 TABLE ACCESS BY INDEX ROWID SPM_CONTRACT_PCR (cr=70 pr=0 pw=0 time=2354 us)
8 INDEX RANGE SCAN CONTRACT_PCR_CHILD_FK_I (cr=62 pr=0 pw=0 time=1915 us)(object id 30116)
0 TABLE ACCESS BY INDEX ROWID SPM_CONTRACTS (cr=24 pr=0 pw=0 time=583 us)
8 INDEX UNIQUE SCAN CONTRACTS_PK (cr=16 pr=0 pw=0 time=328 us)(object id 30085)
Rows Execution Plan
0 SELECT STATEMENT MODE: HINT: FIRST_ROWS
31 VIEW
31 COUNT (STOPKEY)
31 FILTER
31 VIEW
31 SORT (ORDER BY)
32745 NESTED LOOPS
32745 NESTED LOOPS
32745 HASH JOIN
32745 HASH JOIN
32745 HASH JOIN
32745 TABLE ACCESS MODE: ANALYZED (BY INDEX
ROWID) OF 'SPM_CONTRACTS_HUB' (TABLE)
65491 NESTED LOOPS
32745 NESTED LOOPS
149239 VIEW OF 'VW_SQ_2' (VIEW)
149239 HASH (UNIQUE)
197161 NESTED LOOPS
9 VIEW OF 'VW_NSO_1' (VIEW)
9 UNION-ALL
8 NESTED LOOPS
97 INDEX MODE: ANALYZED
(RANGE SCAN) OF 'ROLE_TYPE_NDX' (INDEX)
8 INDEX MODE: ANALYZED
(UNIQUE SCAN) OF 'ROLE_USERS_PK' (INDEX
(UNIQUE))
1 FAST DUAL
197161 INDEX MODE: ANALYZED (RANGE
SCAN) OF 'UFD_CONTRACT_FK_I' (INDEX)
32745 TABLE ACCESS MODE: ANALYZED (BY
INDEX ROWID) OF 'SPM_CONTRACTS' (TABLE)
149238 INDEX MODE: ANALYZED (UNIQUE SCAN)
OF 'CONTRACTS_PK' (INDEX (UNIQUE))
32745 INDEX MODE: ANALYZED (RANGE SCAN) OF
'CONT_HUB_CONTRACT_FK_I' (INDEX)
44590 TABLE ACCESS MODE: ANALYZED (FULL) OF
'SPM_CANDIDATES' (TABLE)
35864 INDEX MODE: ANALYZED (FAST FULL SCAN) OF
'SPM_USERS_SNZ1_IDX' (INDEX)
44547 INDEX MODE: ANALYZED (FAST FULL SCAN) OF
'PMT_SCHED_HUB_IDX_1' (INDEX)
32745 TABLE ACCESS MODE: ANALYZED (BY INDEX ROWID) OF
'SPM_PAYMENT_SCHEDULE' (TABLE)
32745 INDEX MODE: ANALYZED (UNIQUE SCAN) OF
'PMT_SCHED_PK' (INDEX (UNIQUE))
32745 TABLE ACCESS MODE: ANALYZED (BY INDEX ROWID) OF
'SPM_CONTRACTS' (TABLE)
32745 INDEX MODE: ANALYZED (UNIQUE SCAN) OF
'CONTRACTS_PK' (INDEX (UNIQUE))
0 NESTED LOOPS
8 TABLE ACCESS MODE: ANALYZED (BY INDEX ROWID) OF
'SPM_CONTRACT_PCR' (TABLE)
8 INDEX MODE: ANALYZED (RANGE SCAN) OF
'CONTRACT_PCR_CHILD_FK_I' (INDEX)
0 TABLE ACCESS MODE: ANALYZED (BY INDEX ROWID) OF
'SPM_CONTRACTS' (TABLE)
8 INDEX MODE: ANALYZED (UNIQUE SCAN) OF 'CONTRACTS_PK'
(INDEX (UNIQUE))
OVERALL TOTALS FOR ALL NON-RECURSIVE STATEMENTS
call count cpu elapsed disk query current rows
Parse 3 1.99 1.93 2 278 0 0
Execute 3 0.00 0.00 0 0 0 0
Fetch 12 46.54 79.51 14499 1494998 0 93
total 18 48.53 81.44 14501 1495276 0 93
Misses in library cache during parse: 3
OVERALL TOTALS FOR ALL RECURSIVE STATEMENTS
call count cpu elapsed disk query current rows
Parse 45 0.11 0.09 0 0 0 0
Execute 460 0.08 0.10 0 0 0 0
Fetch 1571 0.13 0.17 6 2546 0 1135
total 2076 0.32 0.37 6 2546 0 1135
Misses in library cache during parse: 10
Misses in library cache during execute: 10
3 user SQL statements in session.
460 internal SQL statements in session.
463 SQL statements in session.
3 statements EXPLAINed in this session.
Trace file: tld4_ora_5894.trc
Trace file compatibility: 10.01.00
Sort options: fchela
1 session in tracefile.
3 user SQL statements in trace file.
460 internal SQL statements in trace file.
463 SQL statements in trace file.
13 unique SQL statements in trace file.
3 SQL statements EXPLAINed using schema:
TLADM01.prof$plan_table
Default table was used.
Table was created.
Table was dropped.
4374 lines in trace file.
214 elapsed seconds in trace file.
pl. help identification of solutions to the poorly performing sqlsTKPROF: Release 10.2.0.2.0 - Production on Thu Jun 12 09:25:26 2008
Copyright (c) 1982, 2005, Oracle. All rights reserved.
Trace file: tld4_ora_5894.trc
Sort options: fchela
count = number of times OCI procedure was executed
cpu = cpu time in seconds executing
elapsed = elapsed time in seconds executing
disk = number of physical reads of buffers from disk
query = number of buffers gotten for consistent read
current = number of buffers gotten in current mode (usually for update)
rows = number of rows processed by the fetch or execute call
SELECT *
FROM (SELECT elance_paginated_data.*, ROWNUM elance_current_row_number
FROM (SELECT elance_original_data.*
FROM (SELECT /*+ ordered use_nl(pm) use_hash(pm) use_nl(sph) index(pm PER_RFX_ID_TY_LATEST)*/ pm.loc_id, pm.poc_user_id, pm.ID, pm.code,
pm.NAME, pm.rfx_cost_estimate_base,
pm.date_created, pm.status_id,
pm.version_number, pm.latest_ind,
pm.cat_id cat_id, pm.sponsored_by_org_id,
pm.project_manager_id,
(SELECT COUNT (props.ID)
FROM spm_proposal_rfx pr,
spm_proposals props
WHERE pr.rfx_id = pm.ID
AND pr.proposal_id = props.ID
AND props.status_id NOT IN (8101, 8108))
number_of_proposals,
ch.contract_id,
con.xref_contract xref_contract,
sph.item_property_id process_type
FROM spm_rfx pm,
spm_contracts_hub ch,
spm_contracts con,
spm_properties_hub sph
WHERE pm.ID > 0
AND pm.rfx_type = 'REQUEST'
AND pm.latest_ind = 'Y'
AND pm.ID = ch.rfx_id
AND pm.owner_id = 4000
AND pm.rfx_type = ch.type_of
AND EXISTS (
SELECT 1
FROM spm_user_folder_details ufd
WHERE ufd.contract_id = con.ID
AND ufd.user_id IN (
SELECT ru.role_id
FROM spm_role_users ru,
spm_roles r
WHERE ru.user_id = 29 /* Change for GE env. : changed value from 257698 to 29 */
AND ru.role_id = r.ID
AND r.type_of =
'ROLE_GROUP_TYPE'
UNION ALL
SELECT 29
FROM DUAL))
AND con.ID = ch.contract_id
AND sph.rfx_id = pm.ID
AND sph.type_of = pm.rfx_type
ORDER BY pm.ID DESC) elance_original_data) elance_paginated_data
WHERE ROWNUM <= 31)
WHERE elance_current_row_number >= 1
call count cpu elapsed disk query current rows
Parse 1 0.65 0.64 1 130 0 0
Execute 1 0.00 0.00 0 0 0 0
Fetch 4 9.55 29.16 10039 186553 0 31
total 6 10.20 29.80 10040 186683 0 31
Misses in library cache during parse: 1
Optimizer mode: CHOOSE
Parsing user id: 21 (TLADM01)
Rows Row Source Operation
31 VIEW (cr=186553 pr=10039 pw=0 time=29145812 us)
31 COUNT STOPKEY (cr=186553 pr=10039 pw=0 time=29145749 us)
31 FILTER (cr=186553 pr=10039 pw=0 time=29145727 us)
31 VIEW (cr=185329 pr=10037 pw=0 time=29114147 us)
31 SORT ORDER BY (cr=185329 pr=10037 pw=0 time=29113913 us)
29536 TABLE ACCESS BY INDEX ROWID SPM_PROPERTIES_HUB (cr=81535 pr=9636 pw=0 time=30161718 us)
59073 NESTED LOOPS (cr=70280 pr=2137 pw=0 time=350415773 us)
29536 HASH JOIN (cr=11107 pr=2078 pw=0 time=4575599 us)
29536 HASH JOIN (cr=1900 pr=1891 pw=0 time=3358329 us)
29536 TABLE ACCESS FULL SPM_RFX (cr=1068 pr=1066 pw=0 time=2287845 us)
30935 INDEX FAST FULL SCAN PF_TEST_CHUB_IDX (cr=832 pr=825 pw=0 time=2280408 us)(object id 32367)
181203 TABLE ACCESS FULL SPM_CONTRACTS (cr=9207 pr=187 pw=0 time=2356208 us)
29536 INDEX RANGE SCAN PROPERTY_TYPE_RFX_IDX (cr=59173 pr=59 pw=0 time=994586 us)(object id 30553)
31 NESTED LOOPS (cr=1224 pr=2 pw=0 time=47898 us)
242 VIEW VW_NSO_1 (cr=708 pr=1 pw=0 time=29700 us)
242 UNION-ALL (cr=708 pr=1 pw=0 time=29430 us)
242 NESTED LOOPS (cr=708 pr=1 pw=0 time=28870 us)
645 INDEX RANGE SCAN ROLE_TYPE_NDX (cr=31 pr=1 pw=0 time=11764 us)(object id 30685)
242 INDEX UNIQUE SCAN ROLE_USERS_PK (cr=677 pr=0 pw=0 time=6000 us)(object id 30691)
0 FAST DUAL (cr=0 pr=0 pw=0 time=0 us)
31 INDEX RANGE SCAN UFD_CONTRACT_FK_I (cr=516 pr=1 pw=0 time=28952 us)(object id 30848)
Rows Execution Plan
0 SELECT STATEMENT MODE: CHOOSE
31 VIEW
31 COUNT (STOPKEY)
31 FILTER
31 VIEW
31 SORT (ORDER BY)
29536 TABLE ACCESS MODE: ANALYZED (BY INDEX ROWID) OF
'SPM_PROPERTIES_HUB' (TABLE)
59073 NESTED LOOPS
29536 HASH JOIN
29536 HASH JOIN
29536 TABLE ACCESS MODE: ANALYZED (FULL) OF
'SPM_RFX' (TABLE)
30935 INDEX MODE: ANALYZED (FAST FULL SCAN) OF
'PF_TEST_CHUB_IDX' (INDEX)
181203 TABLE ACCESS MODE: ANALYZED (FULL) OF
'SPM_CONTRACTS' (TABLE)
29536 INDEX MODE: ANALYZED (RANGE SCAN) OF
'PROPERTY_TYPE_RFX_IDX' (INDEX)
31 NESTED LOOPS
242 VIEW OF 'VW_NSO_1' (VIEW)
242 UNION-ALL
242 NESTED LOOPS
645 INDEX MODE: ANALYZED (RANGE SCAN) OF
'ROLE_TYPE_NDX' (INDEX)
242 INDEX MODE: ANALYZED (UNIQUE SCAN) OF
'ROLE_USERS_PK' (INDEX (UNIQUE))
0 FAST DUAL
31 INDEX MODE: ANALYZED (RANGE SCAN) OF
'UFD_CONTRACT_FK_I' (INDEX)
SELECT *
FROM (SELECT elance_paginated_data.*, ROWNUM elance_current_row_number
FROM (SELECT elance_original_data.*
FROM (SELECT /*+ FIRST_ROWS ordered use_nl(con) use_nl(vp)*/
vp.primary_contact_userid, con.ID, con.code,
con.type_of_sub_contract, con.NAME,
con.org_id, con.cat_id, con.ccy_code,
con.end_dt, con.start_dt, con.date_created,
con.xref_contract extrefrequestid,
con.vendor_id, con.status_id,
vp.NAME vendor_name, buyer.NAME AS org_name,
con.created_by,
contract_pcr.CHILD change_order_id,
NVL
(con.change_contract_status_id,
-1
) AS change_contract_status_id,
(SELECT approved_amount
FROM spm_order_summary sos
WHERE sos.contract_id = con.ID
AND sos.po_id = sos.master_po_id)
est_value,
(SELECT billable_amount
FROM spm_order_summary sos
WHERE sos.contract_id = con.ID
AND sos.po_id = sos.master_po_id)
invoicableamount
FROM spm_contracts con,
(SELECT contract_id_parent PARENT,
contract_id_child CHILD
FROM spm_contract_pcr cp
WHERE cp.type_of_relation =
'CONTR_NEW_VERSION') contract_pcr,
spm_vendor_profiles vp,
spm_contracts_hub hub1,
spm_orgs orgs,
spm_orgs buyer
WHERE con.owner_id = 4000 /* Change for GE env. : changed value from 100 to 4000 */
AND EXISTS (
SELECT 1
FROM spm_user_folder_details ufd
WHERE ufd.contract_id = con.ID
AND ufd.user_id IN (
SELECT ru.role_id
FROM spm_role_users ru,
spm_roles r
WHERE ru.user_id = 29 /* Change for GE env. : changed value from 257698 to 29 */
AND ru.role_id = r.ID
AND r.type_of =
'ROLE_GROUP_TYPE'
UNION ALL
SELECT 29 /* Change for GE env. : changed value from 257698 to 29 */
FROM DUAL))
AND ( con.version_number = 1
OR NOT EXISTS (
SELECT /*+ use_nl(pcr) */ 1
FROM spm_contract_pcr pcr,
spm_contracts ord2
WHERE pcr.contract_id_child = con.ID
AND pcr.type_of_relation =
'CONTR_NEW_VERSION'
AND pcr.contract_id_parent =
ord2.ID
AND ( ord2.status_id = 2612
OR ( ord2.status_id = 2611
AND con.status_id NOT IN
(2612,
2604,
2611,
2609,
2610
AND con.contract_type_id = 322
AND con.ID = contract_pcr.PARENT(+)
AND con.ID = hub1.contract_id
AND hub1.type_of != 'PROJECT_CONTRACT'
AND orgs.ID = con.org_id
AND orgs.legal_org_id = buyer.ID
AND vp.vendor_id = con.vendor_id
AND con.status_id NOT IN (-1)
AND NLS_UPPER (con.NAME) LIKE NLS_UPPER ('%%')
ORDER BY con.date_created DESC) elance_original_data) elance_paginated_data
WHERE ROWNUM <= 31)
WHERE elance_current_row_number >= 1
call count cpu elapsed disk query current rows
Parse 1 0.74 0.71 0 0 0 0
Execute 1 0.00 0.00 0 0 0 0
Fetch 4 24.29 28.98 1001 826860 0 31
total 6 25.03 29.69 1001 826860 0 31
Misses in library cache during parse: 1
Optimizer mode: FIRST_ROWS
Parsing user id: 21 (TLADM01)
Rows Row Source Operation
31 VIEW (cr=826860 pr=1001 pw=0 time=28977412 us)
31 COUNT STOPKEY (cr=826860 pr=1001 pw=0 time=28977363 us)
31 VIEW (cr=826860 pr=1001 pw=0 time=28977339 us)
31 SORT ORDER BY STOPKEY (cr=826860 pr=1001 pw=0 time=28977308 us)
76885 FILTER (cr=482076 pr=426 pw=0 time=17625245 us)
76986 HASH JOIN (cr=430532 pr=160 pw=0 time=14013505 us)
1436 VIEW index$_join$_012 (cr=23 pr=0 pw=0 time=16833 us)
1436 HASH JOIN (cr=23 pr=0 pw=0 time=15394 us)
1436 INDEX FAST FULL SCAN ORG_PK (cr=9 pr=0 pw=0 time=511 us)(object id 30407)
1436 INDEX FAST FULL SCAN PF_ORG_NAME (cr=14 pr=0 pw=0 time=140 us)(object id 32369)
76986 HASH JOIN (cr=430509 pr=160 pw=0 time=13604330 us)
234 VIEW index$_join$_011 (cr=18 pr=0 pw=0 time=4429 us)
234 HASH JOIN (cr=18 pr=0 pw=0 time=4427 us)
234 INDEX FAST FULL SCAN SPM_ORGS_MHP1_IDX (cr=9 pr=0 pw=0 time=325 us)(object id 30398)
1436 INDEX FAST FULL SCAN ORG_PK (cr=9 pr=0 pw=0 time=62 us)(object id 30407)
76986 HASH JOIN (cr=430491 pr=160 pw=0 time=13360369 us)
76986 TABLE ACCESS BY INDEX ROWID SPM_VENDOR_PROFILES (cr=429740 pr=106 pw=0 time=12146037 us)
153973 NESTED LOOPS (cr=377498 pr=99 pw=0 time=105010507 us)
76986 HASH JOIN RIGHT OUTER (cr=300158 pr=99 pw=0 time=8281127 us)
7515 INDEX FAST FULL SCAN CONTRACT_PCR_PK (cr=643 pr=30 pw=0 time=46192 us)(object id 30115)
76986 NESTED LOOPS (cr=299515 pr=69 pw=0 time=7155318 us)
149239 VIEW VW_SQ_2 (cr=724 pr=0 pw=0 time=749186 us)
149239 HASH UNIQUE (cr=724 pr=0 pw=0 time=599938 us)
197161 NESTED LOOPS (cr=724 pr=0 pw=0 time=394773 us)
9 VIEW VW_NSO_1 (cr=100 pr=0 pw=0 time=1160 us)
9 UNION-ALL (cr=100 pr=0 pw=0 time=1138 us)
8 NESTED LOOPS (cr=100 pr=0 pw=0 time=1004 us)
97 INDEX RANGE SCAN ROLE_TYPE_NDX (cr=1 pr=0 pw=0 time=368 us)(object id 30685)
8 INDEX UNIQUE SCAN ROLE_USERS_PK (cr=99 pr=0 pw=0 time=964 us)(object id 30691)
1 FAST DUAL (cr=0 pr=0 pw=0 time=4 us)
197161 INDEX RANGE SCAN UFD_CONTRACT_FK_I (cr=624 pr=0 pw=0 time=197535 us)(object id 30848)
76986 TABLE ACCESS BY INDEX ROWID SPM_CONTRACTS (cr=298791 pr=69 pw=0 time=6642668 us)
149238 INDEX UNIQUE SCAN CONTRACTS_PK (cr=149553 pr=0 pw=0 time=2335192 us)(object id 30085)
76986 INDEX RANGE SCAN VNDR_PROF_VNDR_FK_I (cr=77340 pr=0 pw=0 time=1613500 us)(object id 30959)
202239 INDEX FAST FULL SCAN CONT_HUB_CONTID_TYPEOF_IDX (cr=751 pr=54 pw=0 time=218580 us)(object id 30101)
101 NESTED LOOPS (cr=51544 pr=266 pw=0 time=2191923 us)
7515 TABLE ACCESS BY INDEX ROWID SPM_CONTRACT_PCR (cr=28999 pr=266 pw=0 time=1779904 us)
17120 INDEX RANGE SCAN CONTRACT_PCR_CHILD_FK_I (cr=19262 pr=80 pw=0 time=583382 us)(object id 30116)
101 TABLE ACCESS BY INDEX ROWID SPM_CONTRACTS (cr=22545 pr=0 pw=0 time=383707 us)
7515 INDEX UNIQUE SCAN CONTRACTS_PK (cr=15030 pr=0 pw=0 time=226188 us)(object id 30085)
Rows Execution Plan
0 SELECT STATEMENT MODE: HINT: FIRST_ROWS
31 VIEW
31 COUNT (STOPKEY)
31 VIEW
31 SORT (ORDER BY STOPKEY)
76885 FILTER
76986 HASH JOIN
1436 VIEW OF 'index$_join$_012' (VIEW)
1436 HASH JOIN
1436 INDEX MODE: ANALYZED (FAST FULL SCAN) OF
'ORG_PK' (INDEX (UNIQUE))
1436 INDEX MODE: ANALYZED (FAST FULL SCAN) OF
'PF_ORG_NAME' (INDEX)
76986 HASH JOIN
234 VIEW OF 'index$_join$_011' (VIEW)
234 HASH JOIN
234 INDEX MODE: ANALYZED (FAST FULL SCAN) OF
'SPM_ORGS_MHP1_IDX' (INDEX)
1436 INDEX MODE: ANALYZED (FAST FULL SCAN) OF
'ORG_PK' (INDEX (UNIQUE))
76986 HASH JOIN
76986 TABLE ACCESS MODE: ANALYZED (BY INDEX ROWID)
OF 'SPM_VENDOR_PROFILES' (TABLE)
153973 NESTED LOOPS
76986 HASH JOIN (RIGHT OUTER)
7515 INDEX MODE: ANALYZED (FAST FULL SCAN) OF
'CONTRACT_PCR_PK' (INDEX (UNIQUE))
76986 NESTED LOOPS
149239 VIEW OF 'VW_SQ_2' (VIEW)
149239 HASH (UNIQUE)
197161 NESTED LOOPS
9 VIEW OF 'VW_NSO_1' (VIEW)
9 UNION-ALL
8 NESTED LOOPS
97 INDEX MODE: ANALYZED
(RANGE SCAN) OF 'ROLE_TYPE_NDX' (INDEX)
8 INDEX MODE: ANALYZED
(UNIQUE SCAN) OF 'ROLE_USERS_PK' (INDEX
(UNIQUE))
1 FAST DUAL
197161 INDEX MODE: ANALYZED (RANGE SCAN)
OF 'UFD_CONTRACT_FK_I' (INDEX)
76986 TABLE ACCESS MODE: ANALYZED (BY INDEX
ROWID) OF 'SPM_CONTRACTS' (TABLE)
149238 INDEX MODE: ANALYZED (UNIQUE SCAN)
OF 'CONTRACTS_PK' (INDEX (UNIQUE))
76986 INDEX MODE: ANALYZED (RANGE SCAN) OF
'VNDR_PROF_VNDR_FK_I' (INDEX)
202239 INDEX MODE: ANALYZED (FAST FULL SCAN) OF
'CONT_HUB_CONTID_TYPEOF_IDX' (INDEX)
101 NESTED LOOPS
7515 TABLE ACCESS MODE: ANALYZED (BY INDEX ROWID) OF
'SPM_CONTRACT_PCR' (TABLE)
17120 INDEX MODE: ANALYZED (RANGE SCAN) OF
'CONTRACT_PCR_CHILD_FK_I' (INDEX)
101 TABLE ACCESS MODE: ANALYZED (BY INDEX ROWID) OF
'SPM_CONTRACTS' (TABLE)
7515 INDEX MODE: ANALYZED (UNIQUE SCAN) OF
'CONTRACTS_PK' (INDEX (UNIQUE))
SELECT *
FROM (SELECT elance_paginated_data.*, ROWNUM elance_current_row_number
FROM (SELECT elance_original_data.*
FROM (SELECT /*+first_rows ordered use_nl(cont) use_nl(conthub) use_nl(sps) */
cont.ID AS workorderid,
cont.status_id AS statusid,
cont.code AS workordercode,
cont.NAME AS workordertitle,
cont.description AS workorderdescription,
cont.start_dt AS startdate,
cont.end_dt AS enddate,
cont.termination_dt AS terminationdate,
cont.user_id AS hiring_manager_user_id,
cont.org_id AS org_id,
conthub.user_id AS contractorid,
-- cand.last_name AS last_name,
cand.last_name
|| ', '
|| cand.first_name AS candidatename,
cand.became_userid AS became_userid,
su.display_name AS hiring_manager_name,
ord.cat_id AS cat_id, ord.ID AS order_id,
ord.code AS order_code,
ord.NAME AS order_name,
ord.version_number AS version_number
FROM spm_contracts cont,
spm_contracts_hub conthub,
spm_candidates cand,
spm_users su,
spm_pmt_sched_hub spsh,
spm_payment_schedule sps,
spm_contracts ord
WHERE cont.owner_id = 4000 /* Change for GE env. : changed value from 100 to 4000 */
AND cont.contract_type_id = 323
AND cont.status_id IN (8705, 8709, 8708, 8702)
AND EXISTS (
SELECT 1
FROM spm_user_folder_details ufd
WHERE ufd.contract_id = cont.ID
AND ufd.user_id IN (
SELECT ru.role_id
FROM spm_role_users ru,
spm_roles r
WHERE ru.user_id = 29 /* Change for GE env. : changed value from 257698 to 29 */
AND ru.role_id = r.ID
AND r.type_of =
'ROLE_GROUP_TYPE'
UNION ALL
SELECT 29 /* Change for GE env. : changed value from 257698 to 29 */
FROM DUAL))
AND NOT EXISTS (
SELECT /*+ use_nl(pcr) */ 1
FROM spm_contract_pcr pcr,
spm_contracts ord2
WHERE pcr.contract_id_child = ord.ID
AND pcr.contract_id_parent = ord2.ID
AND ord2.status_id = 2612
AND pcr.type_of_relation IN
('CONTR_NEW_VERSION',
'CONTRACTOR_REENGAGED'
AND cont.ID = conthub.contract_id
AND conthub.type_of = 'CANDIDATE'
AND conthub.candidate_id = cand.ID
AND cont.user_id = su.ID
AND cont.ID = spsh.contract_id
AND spsh.pmt_sched_id = sps.ID
AND sps.contract_id = ord.ID
ORDER BY workorderid DESC) elance_original_data) elance_paginated_data
WHERE ROWNUM <= 31)
WHERE elance_current_row_number >= 1
call count cpu elapsed disk query current rows
Parse 1 0.60 0.57 1 148 0 0
Execute 1 0.00 0.00 0 0 0 0
Fetch 4 12.70 21.37 3459 481585 0 31
total 6 13.30 21.94 3460 481733 0 31
Misses in library cache during parse: 1
Optimizer mode: FIRST_ROWS
Parsing user id: 21 (TLADM01)
Rows Row Source Operation
31 VIEW (cr=481585 pr=3459 pw=0 time=21365544 us)
31 COUNT STOPKEY (cr=481585 pr=3459 pw=0 time=21365480 us)
31 FILTER (cr=481585 pr=3459 pw=0 time=21365455 us)
31 VIEW (cr=481491 pr=3459 pw=0 time=21366696 us)
31 SORT ORDER BY (cr=481491 pr=3459 pw=0 time=21366310 us)
32745 NESTED LOOPS (cr=481491 pr=3459 pw=0 time=19266638 us)
32745 NESTED LOOPS (cr=415999 pr=3459 pw=0 time=18415173 us)
32745 HASH JOIN (cr=350507 pr=2907 pw=0 time=16695622 us)
32745 HASH JOIN (cr=349756 pr=2823 pw=0 time=16056095 us)
32745 HASH JOIN (cr=349581 pr=2780 pw=0 time=16950617 us)
32745 TABLE ACCESS BY INDEX ROWID SPM_CONTRACTS_HUB (cr=347407 pr=610 pw=0 time=8351793 us)
65491 NESTED LOOPS (cr=332023 pr=338 pw=0 time=105243492 us)
32745 NESTED LOOPS (cr=299202 pr=298 pw=0 time=6616161 us)
149239 VIEW VW_SQ_2 (cr=724 pr=53 pw=0 time=1118731 us)
149239 HASH UNIQUE (cr=724 pr=53 pw=0 time=969487 us)
197161 NESTED LOOPS (cr=724 pr=53 pw=0 time=394854 us)
9 VIEW VW_NSO_1 (cr=100 pr=0 pw=0 time=1288 us)
9 UNION-ALL (cr=100 pr=0 pw=0 time=1269 us)
8 NESTED LOOPS (cr=100 pr=0 pw=0 time=1133 us)
97 INDEX RANGE SCAN ROLE_TYPE_NDX (cr=1 pr=0 pw=0 time=514 us)(object id 30685)
8 INDEX UNIQUE SCAN ROLE_USERS_PK (cr=99 pr=0 pw=0 time=1140 us)(object id 30691)
1 FAST DUAL (cr=0 pr=0 pw=0 time=4 us)
197161 INDEX RANGE SCAN UFD_CONTRACT_FK_I (cr=624 pr=53 pw=0 time=197643 us)(object id 30848)
32745 TABLE ACCESS BY INDEX ROWID SPM_CONTRACTS (cr=298478 pr=245 pw=0 time=7787761 us)
149238 INDEX UNIQUE SCAN CONTRACTS_PK (cr=149240 pr=59 pw=0 time=2627776 us)(object id 30085)
32745 INDEX RANGE SCAN CONT_HUB_CONTRACT_FK_I (cr=32821 pr=40 pw=0 time=1129934 us)(object id 30106)
44590 TABLE ACCESS FULL SPM_CANDIDATES (cr=2174 pr=2170 pw=0 time=695935 us)
35864 INDEX FAST FULL SCAN SPM_USERS_SNZ1_IDX (cr=175 pr=43 pw=0 time=49486 us)(object id 30832)
44547 INDEX FAST FULL SCAN PMT_SCHED_HUB_IDX_1 (cr=751 pr=84 pw=0 time=101490 us)(object id 30474)
32745 TABLE ACCESS BY INDEX ROWID SPM_PAYMENT_SCHEDULE (cr=65492 pr=552 pw=0 time=3084181 us)
32745 INDEX UNIQUE SCAN PMT_SCHED_PK (cr=32747 pr=34 pw=0 time=512373 us)(object id 30427)
32745 TABLE ACCESS BY INDEX ROWID SPM_CONTRACTS (cr=65492 pr=0 pw=0 time=820633 us)
32745 INDEX UNIQUE SCAN CONTRACTS_PK (cr=32747 pr=0 pw=0 time=344850 us)(object id 30085)
0 NESTED LOOPS (cr=94 pr=0 pw=0 time=3048 us)
8 TABLE ACCESS BY INDEX ROWID SPM_CONTRACT_PCR (cr=70 pr=0 pw=0 time=2354 us)
8 INDEX RANGE SCAN CONTRACT_PCR_CHILD_FK_I (cr=62 pr=0 pw=0 time=1915 us)(object id 30116)
0 TABLE ACCESS BY INDEX ROWID SPM_CONTRACTS (cr=24 pr=0 pw=0 time=583 us)
8 INDEX UNIQUE SCAN CONTRACTS_PK (cr=16 pr=0 pw=0 time=328 us)(object id 30085)
Rows Execution Plan
0 SELECT STATEMENT MODE: HINT: FIRST_ROWS
31 VIEW
31 COUNT (STOPKEY)
31 FILTER
31 VIEW
31 SORT (ORDER BY)
32745 NESTED LOOPS
32745 NESTED LOOPS
32745 HASH JOIN
32745 HASH JOIN
32745 HASH JOIN
32745 TABLE ACCESS MODE: ANALYZED (BY INDEX
ROWID) OF 'SPM_CONTRACTS_HUB' (TABLE)
65491 NESTED LOOPS
32745 NESTED LOOPS
149239 VIEW OF 'VW_SQ_2' (VIEW)
149239 HASH (UNIQUE)
197161 NESTED LOOPS
9 VIEW OF 'VW_NSO_1' (VIEW)
9 UNION-ALL
8 NESTED LOOPS
97 INDEX MODE: ANALYZED
(RANGE SCAN) OF 'ROLE_TYPE_NDX' (INDEX)
8 INDEX MODE: ANALYZED
(UNIQUE SCAN) OF 'ROLE_USERS_PK' (INDEX
(UNIQUE))
1 FAST DUAL
197161 INDEX MODE: ANALYZED (RANGE
SCAN) OF 'UFD_CONTRACT_FK_I' (INDEX)
32745 TABLE ACCESS MODE: ANALYZED (BY
INDEX ROWID) OF 'SPM_CONTRACTS' (TABLE)
149238 INDEX MODE: ANALYZED (UNIQUE SCAN)
OF 'CONTRACTS_PK' (INDEX (UNIQUE))
32745 INDEX MODE: ANALYZED (RANGE SCAN) OF
'CONT_HUB_CONTRACT_FK_I' (INDEX)
44590 TABLE ACCESS MODE: ANALYZED (FULL) OF
'SPM_CANDIDATES' (TABLE)
35864 INDEX MODE: ANALYZED (FAST FULL SCAN) OF
'SPM_USERS_SNZ1_IDX' (INDEX)
44547 INDEX MODE: ANALYZED (FAST FULL SCAN) OF
'PMT_SCHED_HUB_IDX_1' (INDEX)
32745 TABLE ACCESS MODE: ANALYZED (BY INDEX ROWID) OF
'SPM_PAYMENT_SCHEDULE' (TABLE)
32745 INDEX MODE: ANALYZED (UNIQUE SCAN) OF
'PMT_SCHED_PK' (INDEX (UNIQUE))
32745 TABLE ACCESS MODE: ANALYZED (BY INDEX ROWID) OF
'SPM_CONTRACTS' (TABLE)
32745 INDEX MODE: ANALYZED (UNIQUE SCAN) OF
'CONTRACTS_PK' (INDEX (UNIQUE))
0 NESTED LOOPS
8 TABLE ACCESS MODE: ANALYZED (BY INDEX ROWID) OF
'SPM_CONTRACT_PCR' (TABLE)
8 INDEX MODE: ANALYZED (RANGE SCAN) OF
'CONTRACT_PCR_CHILD_FK_I' (INDEX)
0 TABLE ACCESS MODE: ANALYZED (BY INDEX ROWID) OF
'SPM_CONTRACTS' (TABLE)
8 INDEX MODE: ANALYZED (UNIQUE SCAN) OF 'CONTRACTS_PK'
(INDEX (UNIQUE))
OVERALL TOTALS FOR ALL NON-RECURSIVE STATEMENTS
call count cpu elapsed disk query current rows
Parse 3 1.99 1.93 2 278 0 0
Execute 3 0.00 0.00 0 0 0 0
Fetch 12 46.54 79.51 14499 1494998 0 93
total 18 48.53 81.44 14501 1495276 0 93
Misses in library cache during parse: 3
OVERALL TOTALS FOR ALL RECURSIVE STATEMENTS
call count cpu elapsed disk query current rows
Parse 45 0.11 0.09 0 0 0 0
Execute 460 0.08 0.10 0 0 0 0
Fetch 1571 0.13 0.17 6 2546 0 1135
total 2076 0.32 0.37 6 2546 0 1135
Misses in library cache during parse: 10
Misses in library cache during execute: 10
3 user SQL statements in session.
460 internal SQL statements in session.
463 SQL statements in session.
3 statements EXPLAINed in this session.
Trace file: tld4_ora_5894.trc
Trace file compatibility: 10.01.00
Sort options: fchela
1 session in tracefile.
3 user SQL statements in trace file.
460 internal SQL statements in trace file.
463 SQL statements in trace file.
13 unique SQL statements in trace file.
3 SQL statements EXPLAINed using schema:
TLADM01.prof$plan_table
Default table was used.
Table was created.
Table was dropped.
4374 lines in trace file.
214 elapsed seconds in trace file. -
How to reduce the query fetch from TKPROF output?
Hi,
Below is my query contains the TKPROF output.Here fetch is too high. How to reduce the fetch from here. And please check the explain plan is good or not?
SELECT czci.config_hdr_id,
czci.config_rev_nbr,
asoqla.quantity,
(SELECT
node_desc.LOCALIZED_STR
FROM CZ_LOCALIZED_TEXTS node_desc,
CZ_PS_NODES ps_nodes,
CZ_CONFIG_ITEMS czci1
WHERE czci1.config_hdr_id = asoqld.config_header_id
AND czci1.config_rev_nbr = asoqld.config_revision_num
AND node_desc.INTL_TEXT_ID = ps_nodes.INTL_TEXT_ID
AND NVL(node_desc.LANGUAGE,userenv('LANG')) = userenv('LANG')
AND czci1.PS_NODE_ID = ps_nodes.PERSISTENT_NODE_ID
AND ps_nodes.DEVL_PROJECT_ID = (SELECT MAX(DEVL_PROJECT_ID) FROM CZ_DEVL_PROJECTS WHERE NAME LIKE 'Control Model')
AND czci1.PARENT_CONFIG_ITEM_ID IN (SELECT sub_sub.CONFIG_ITEM_ID FROM CZ_CONFIG_ITEMS sub_sub
WHERE sub_sub.CONFIG_HDR_ID = asoqld.config_header_id
AND sub_sub.CONFIG_REV_NBR = asoqld.config_revision_num
AND sub_sub.PS_NODE_NAME = 'fittings')) fitting_material,
(SELECT
node_desc.LOCALIZED_STR
FROM CZ_LOCALIZED_TEXTS node_desc,
CZ_PS_NODES ps_nodes,
CZ_CONFIG_ITEMS czci
WHERE czci.config_hdr_id = asoqld.config_header_id
AND czci.config_rev_nbr = asoqld.config_revision_num
AND node_desc.INTL_TEXT_ID = ps_nodes.INTL_TEXT_ID
AND NVL(node_desc.LANGUAGE,userenv('LANG')) = userenv('LANG')
AND czci.PS_NODE_ID = ps_nodes.PERSISTENT_NODE_ID
AND ps_nodes.DEVL_PROJECT_ID = (SELECT MAX(DEVL_PROJECT_ID) FROM CZ_DEVL_PROJECTS WHERE NAME LIKE 'Control Model')
AND czci.PARENT_CONFIG_ITEM_ID IN (SELECT sub_sub.CONFIG_ITEM_ID FROM CZ_CONFIG_ITEMS sub_sub
WHERE sub_sub.CONFIG_HDR_ID = czci.CONFIG_HDR_ID
AND sub_sub.CONFIG_REV_NBR = czci.CONFIG_REV_NBR
AND sub_sub.PS_NODE_NAME = 'tubing')) tubing_material
FROM aso_quote_lines_all asoqla,
aso_quote_line_details asoqld,
cz_config_items czci
WHERE asoqla.quote_header_id = 55774
AND asoqla.item_type_code = 'MDL'
--AND asoqla.org_id = 2763
AND asoqla.quote_line_id = asoqld.quote_line_id
AND asoqld.config_header_id = czci.config_hdr_id
AND asoqld.config_revision_num = czci.config_rev_nbr
AND czci.ps_node_name = 'CONTROL MASTER ASLY'
call count cpu elapsed disk query current rows
Parse 1 0.04 0.03 0 0 0 0
Execute 1 0.00 0.00 0 0 0 0
Fetch 3 0.09 0.08 0 5100 0 19
total 5 0.13 0.12 0 5100 0 19
Misses in library cache during parse: 1
Optimizer goal: ALL_ROWS
Parsing user id: 173 (APPS)
Rows Row Source Operation
3 TABLE ACCESS BY INDEX ROWID CZ_LOCALIZED_TEXTS (cr=2161 pr=0 pw=0 time=32425 us)
40 NESTED LOOPS (cr=2158 pr=0 pw=0 time=32276 us)
3 NESTED LOOPS (cr=2147 pr=0 pw=0 time=32156 us)
3 NESTED LOOPS (cr=925 pr=0 pw=0 time=15885 us)
3 TABLE ACCESS BY INDEX ROWID CZ_CONFIG_ITEMS (cr=665 pr=0 pw=0 time=13456 us)
5490 INDEX RANGE SCAN CZ_CONFIG_ITEMS_PK (cr=96 pr=0 pw=0 time=1237 us)(object id 3049621)
3 TABLE ACCESS BY INDEX ROWID CZ_CONFIG_ITEMS (cr=260 pr=0 pw=0 time=2401 us)
1094 INDEX RANGE SCAN CZ_CONFIG_ITEMS_PK (cr=19 pr=0 pw=0 time=250 us)(object id 3049621)
3 TABLE ACCESS BY INDEX ROWID CZ_PS_NODES (cr=1222 pr=0 pw=0 time=16249 us)
3 INDEX RANGE SCAN CZ_PS_NODES_N12 (cr=1219 pr=0 pw=0 time=16211 us)(object id 750095)
1 SORT AGGREGATE (cr=1211 pr=0 pw=0 time=16125 us)
209 TABLE ACCESS FULL CZ_DEVL_PROJECTS (cr=1211 pr=0 pw=0 time=15883 us)
18 INDEX RANGE SCAN CZ_LOCALIZED_TEXTS_N1 (cr=11 pr=0 pw=0 time=68 us)(object id 31504)
3 TABLE ACCESS BY INDEX ROWID CZ_LOCALIZED_TEXTS (cr=2161 pr=0 pw=0 time=31499 us)
40 NESTED LOOPS (cr=2158 pr=0 pw=0 time=31351 us)
3 NESTED LOOPS (cr=2147 pr=0 pw=0 time=31215 us)
3 NESTED LOOPS (cr=925 pr=0 pw=0 time=15271 us)
3 TABLE ACCESS BY INDEX ROWID CZ_CONFIG_ITEMS (cr=665 pr=0 pw=0 time=12441 us)
5490 INDEX RANGE SCAN CZ_CONFIG_ITEMS_PK (cr=96 pr=0 pw=0 time=1230 us)(object id 3049621)
3 TABLE ACCESS BY INDEX ROWID CZ_CONFIG_ITEMS (cr=260 pr=0 pw=0 time=2795 us)
1094 INDEX RANGE SCAN CZ_CONFIG_ITEMS_PK (cr=19 pr=0 pw=0 time=264 us)(object id 3049621)
3 TABLE ACCESS BY INDEX ROWID CZ_PS_NODES (cr=1222 pr=0 pw=0 time=15920 us)
3 INDEX RANGE SCAN CZ_PS_NODES_N12 (cr=1219 pr=0 pw=0 time=15863 us)(object id 750095)
1 SORT AGGREGATE (cr=1211 pr=0 pw=0 time=15753 us)
209 TABLE ACCESS FULL CZ_DEVL_PROJECTS (cr=1211 pr=0 pw=0 time=15452 us)
18 INDEX RANGE SCAN CZ_LOCALIZED_TEXTS_N1 (cr=11 pr=0 pw=0 time=79 us)(object id 31504)
19 TABLE ACCESS BY INDEX ROWID CZ_CONFIG_ITEMS (cr=778 pr=0 pw=0 time=20571 us)
5816 NESTED LOOPS (cr=202 pr=0 pw=0 time=8497 us)
21 NESTED LOOPS (cr=96 pr=0 pw=0 time=2037 us)
23 TABLE ACCESS BY INDEX ROWID ASO_QUOTE_LINES_ALL (cr=47 pr=0 pw=0 time=1427 us)
1058 INDEX RANGE SCAN ASO_QUOTE_LINES_ALL_N1 (cr=9 pr=0 pw=0 time=51 us)(object id 81688)
21 TABLE ACCESS BY INDEX ROWID ASO_QUOTE_LINE_DETAILS (cr=49 pr=0 pw=0 time=596 us)
21 INDEX RANGE SCAN ASO_QUOTE_LINE_DETAILS_N1 (cr=28 pr=0 pw=0 time=323 us)(object id 81706)
5794 INDEX RANGE SCAN CZ_CONFIG_ITEMS_PK (cr=106 pr=0 pw=0 time=1424 us)(object id 3049621)Hi
After affed the exist operator i got below output. But it is more than that the previous one.
SELECT czci.config_hdr_id, czci.config_rev_nbr, asoqla.quantity,
(SELECT node_desc.localized_str
FROM cz_localized_texts node_desc,
cz_ps_nodes ps_nodes,
cz_config_items czci1
WHERE czci1.config_hdr_id = asoqld.config_header_id
AND czci1.config_rev_nbr = asoqld.config_revision_num
AND node_desc.intl_text_id = ps_nodes.intl_text_id
AND NVL (node_desc.LANGUAGE, USERENV ('LANG')) = USERENV ('LANG')
AND czci1.ps_node_id = ps_nodes.persistent_node_id
AND ps_nodes.devl_project_id = (SELECT MAX (devl_project_id)
FROM cz_devl_projects
WHERE NAME = 'Control Model')
AND EXISTS (
SELECT NULL
FROM cz_config_items sub_sub
WHERE sub_sub.config_hdr_id = asoqld.config_header_id
AND sub_sub.config_rev_nbr = asoqld.config_revision_num
AND sub_sub.ps_node_name = 'fittings'
AND czci1.parent_config_item_id = sub_sub.config_item_id))
fitting_material,
(SELECT node_desc.localized_str
FROM cz_localized_texts node_desc,
cz_ps_nodes ps_nodes,
cz_config_items czci1
WHERE czci1.config_hdr_id = asoqld.config_header_id
AND czci1.config_rev_nbr = asoqld.config_revision_num
AND node_desc.intl_text_id = ps_nodes.intl_text_id
AND node_desc.LANGUAGE = USERENV ('LANG')
AND czci1.ps_node_id = ps_nodes.persistent_node_id
AND ps_nodes.devl_project_id = (SELECT MAX (devl_project_id)
FROM cz_devl_projects
WHERE NAME = 'Control Model')
AND EXISTS (
SELECT NULL
FROM cz_config_items sub_sub
WHERE sub_sub.config_hdr_id = czci.config_hdr_id
AND sub_sub.config_rev_nbr = czci.config_rev_nbr
AND sub_sub.ps_node_name = 'tubing'
AND czci1.parent_config_item_id = sub_sub.config_item_id))
tubing_material
FROM aso_quote_lines_all asoqla,
aso_quote_line_details asoqld,
cz_config_items czci
WHERE asoqla.quote_header_id = 55774
AND asoqla.item_type_code = 'MDL'
--AND asoqla.org_id = 2763
AND asoqla.quote_line_id = asoqld.quote_line_id
AND asoqld.config_header_id = czci.config_hdr_id
AND asoqld.config_revision_num = czci.config_rev_nbr
AND czci.ps_node_name = 'CONTROL MASTER ASLY'
call count cpu elapsed disk query current rows
Parse 1 0.02 0.03 0 0 0 0
Execute 1 0.00 0.00 0 0 0 0
Fetch 3 0.16 0.14 0 16526 0 19
total 5 0.18 0.17 0 16526 0 19
Misses in library cache during parse: 1
Optimizer goal: ALL_ROWS
Parsing user id: 173 (APPS)
Rows Row Source Operation
3 TABLE ACCESS BY INDEX ROWID CZ_LOCALIZED_TEXTS (cr=7874 pr=0 pw=0 time=51192 us)
40 NESTED LOOPS (cr=7871 pr=0 pw=0 time=50953 us)
3 NESTED LOOPS (cr=7860 pr=0 pw=0 time=50729 us)
3 TABLE ACCESS BY INDEX ROWID CZ_CONFIG_ITEMS (cr=6638 pr=0 pw=0 time=33183 us)
3 INDEX RANGE SCAN CZ_CONFIG_ITEMS_N1 (cr=6635 pr=0 pw=0 time=33060 us)(object id 31734)
3 TABLE ACCESS BY INDEX ROWID CZ_CONFIG_ITEMS (cr=6536 pr=0 pw=0 time=22873 us)
1292 INDEX UNIQUE SCAN CZ_CONFIG_ITEMS_PK (cr=5244 pr=0 pw=0 time=15326 us)(object id 3049621)
3 TABLE ACCESS BY INDEX ROWID CZ_PS_NODES (cr=1222 pr=0 pw=0 time=17483 us)
3 INDEX RANGE SCAN CZ_PS_NODES_N12 (cr=1219 pr=0 pw=0 time=17411 us)(object id 750095)
1 SORT AGGREGATE (cr=1211 pr=0 pw=0 time=17266 us)
209 TABLE ACCESS FULL CZ_DEVL_PROJECTS (cr=1211 pr=0 pw=0 time=16844 us)
18 INDEX RANGE SCAN CZ_LOCALIZED_TEXTS_N1 (cr=11 pr=0 pw=0 time=122 us)(object id 31504)
3 NESTED LOOPS (cr=7874 pr=0 pw=0 time=48203 us)
3 NESTED LOOPS (cr=7860 pr=0 pw=0 time=47973 us)
3 TABLE ACCESS BY INDEX ROWID CZ_CONFIG_ITEMS (cr=6638 pr=0 pw=0 time=30352 us)
3 INDEX RANGE SCAN CZ_CONFIG_ITEMS_N1 (cr=6635 pr=0 pw=0 time=30218 us)(object id 31734)
3 TABLE ACCESS BY INDEX ROWID CZ_CONFIG_ITEMS (cr=6536 pr=0 pw=0 time=20960 us)
1292 INDEX UNIQUE SCAN CZ_CONFIG_ITEMS_PK (cr=5244 pr=0 pw=0 time=14224 us)(object id 3049621)
3 TABLE ACCESS BY INDEX ROWID CZ_PS_NODES (cr=1222 pr=0 pw=0 time=17570 us)
3 INDEX RANGE SCAN CZ_PS_NODES_N12 (cr=1219 pr=0 pw=0 time=17510 us)(object id 750095)
1 SORT AGGREGATE (cr=1211 pr=0 pw=0 time=17395 us)
209 TABLE ACCESS FULL CZ_DEVL_PROJECTS (cr=1211 pr=0 pw=0 time=16937 us)
3 TABLE ACCESS BY INDEX ROWID CZ_LOCALIZED_TEXTS (cr=14 pr=0 pw=0 time=165 us)
3 INDEX UNIQUE SCAN CZ_LOCALIZED_TEXTS_PK (cr=11 pr=0 pw=0 time=132 us)(object id 3050530)
19 TABLE ACCESS BY INDEX ROWID CZ_CONFIG_ITEMS (cr=778 pr=0 pw=0 time=41677 us)
5816 NESTED LOOPS (cr=202 pr=0 pw=0 time=16173 us)
21 NESTED LOOPS (cr=96 pr=0 pw=0 time=3617 us)
23 TABLE ACCESS BY INDEX ROWID ASO_QUOTE_LINES_ALL (cr=47 pr=0 pw=0 time=2528 us)
1058 INDEX RANGE SCAN ASO_QUOTE_LINES_ALL_N1 (cr=9 pr=0 pw=0 time=83 us)(object id 81688)
21 TABLE ACCESS BY INDEX ROWID ASO_QUOTE_LINE_DETAILS (cr=49 pr=0 pw=0 time=1053 us)
21 INDEX RANGE SCAN ASO_QUOTE_LINE_DETAILS_N1 (cr=28 pr=0 pw=0 time=598 us)(object id 81706)
5794 INDEX RANGE SCAN CZ_CONFIG_ITEMS_PK (cr=106 pr=0 pw=0 time=8245 us)(object id 3049621) -
Tkprof output -- 10.2.0.4
Hi All,
I am facing a problem at the client side.The EOD process is taking long time.The database version is 10.2.0.4 and the OS is windows server 2003 R1
03:57:20database >show parameter optimizer
NAME TYPE VALUE
optimizer_dynamic_sampling integer 2
optimizer_features_enable string 10.2.0.4
optimizer_index_caching integer 0
optimizer_index_cost_adj integer 10
optimizer_mode string ALL_ROWS
optimizer_secure_view_merging boolean TRUE
03:57:20database >
03:57:20database >show parameter db_file_multi
NAME TYPE VALUE
db_file_multiblock_read_count integer 64
03:57:20database >
03:57:20database >show parameter db_block_size
NAME TYPE VALUE
db_block_size integer 8192
03:57:20database >
03:57:20database >column sname format a20
03:57:20database >column pname format a20
03:57:20database >column pval2 format a20
03:57:20database >
03:57:20database >select
03:57:20 2 sname
03:57:20 3 , pname
03:57:20 4 , pval1
03:57:20 5 , pval2
03:57:20 6 from
03:57:20 7 sys.aux_stats$;
SNAME PNAME PVAL1 PVAL2
SYSSTATS_INFO STATUS COMPLETED
SYSSTATS_INFO DSTART 03-14-2008 19:37
SYSSTATS_INFO DSTOP 03-14-2008 19:37
SYSSTATS_INFO FLAGS 1
SYSSTATS_MAIN CPUSPEEDNW 1171.76471
SYSSTATS_MAIN IOSEEKTIM 10
SYSSTATS_MAIN IOTFRSPEED 4096
SYSSTATS_MAIN SREADTIM
SYSSTATS_MAIN MREADTIM
SYSSTATS_MAIN CPUSPEED
SYSSTATS_MAIN MBRC
SYSSTATS_MAIN MAXTHR
SYSSTATS_MAIN SLAVETHR
13 rows selected.
04:01:38database >sho sga
Total System Global Area 872415232 bytes
Fixed Size 1299660 bytes
Variable Size 327158580 bytes
Database Buffers 536870912 bytes
Redo Buffers 7086080 bytes
SGA_TARGET is set to 876609536
============================================================
TKPROF: Release 10.2.0.4.0 - Production on Fri Apr 3 20:00:02 2009
Copyright (c) 1982, 2007, Oracle. All rights reserved.
Trace file: E:\oracle\product\10.2.0\admin\user\udump\user_ora_456.trc
Sort options: default
SELECT *
FROM
CITY_CODES_UTI
call count cpu elapsed disk query current rows
Parse 0 0.00 0.00 0 0 0 0
Execute 7750 5.39 5.06 0 0 0 0
Fetch 7750 14.48 14.35 0 23250 0 31000
total 15500 19.87 19.42 0 23250 0 31000
Misses in library cache during parse: 0
Optimizer mode: ALL_ROWS
Parsing user id: 61 (user) (recursive depth: 1)
Rows Execution Plan
0 SELECT STATEMENT MODE: ALL_ROWS
0 TABLE ACCESS MODE: ANALYZED (FULL) OF 'CITY_CODES_UTI' (TABLE)
SELECT BIN,BANK_CODE
FROM
BIN_BANK ORDER BY BANK_CODE
call count cpu elapsed disk query current rows
Parse 0 0.00 0.00 0 0 0 0
Execute 7750 5.53 5.55 0 0 0 0
Fetch 7750 14.60 14.07 0 7750 0 69750
total 15500 20.14 19.63 0 7750 0 69750
Misses in library cache during parse: 0
Optimizer mode: ALL_ROWS
Parsing user id: 61 (user) (recursive depth: 1)
Rows Execution Plan
0 SELECT STATEMENT MODE: ALL_ROWS
0 SORT (ORDER BY)
0 INDEX MODE: ANALYZED (FULL SCAN) OF 'BIN_BANK_IDX' (INDEX)
SELECT *
FROM
BANK_CURRENCY WHERE BANK_CODE=:B2 AND CUR_CODE=:B1
call count cpu elapsed disk query current rows
Parse 0 0.00 0.00 0 0 0 0
Execute 7750 5.48 4.97 0 0 0 0
Fetch 7750 4.29 3.85 0 7750 0 7750
total 15500 9.78 8.83 0 7750 0 7750
Misses in library cache during parse: 0
Optimizer mode: ALL_ROWS
Parsing user id: 61 (user) (recursive depth: 1)
Rows Execution Plan
0 SELECT STATEMENT MODE: ALL_ROWS
0 INDEX MODE: ANALYZED (UNIQUE SCAN) OF 'PK_BANK_CUR_CODE'
(INDEX (UNIQUE))
SELECT CARD_NO
FROM
TEST_CARDS WHERE CARD_NO=:B1 ORDER BY CARD_NO
call count cpu elapsed disk query current rows
Parse 0 0.00 0.00 0 0 0 0
Execute 54346 45.56 41.30 0 0 0 0
Fetch 54346 124.48 122.01 0 163038 0 70
total 108692 170.04 163.31 0 163038 0 70
Misses in library cache during parse: 0
Optimizer mode: ALL_ROWS
Parsing user id: 61 (user) (recursive depth: 1)
Rows Execution Plan
0 SELECT STATEMENT MODE: ALL_ROWS
0 SORT (ORDER BY)
0 TABLE ACCESS MODE: ANALYZED (FULL) OF 'TEST_CARDS' (TABLE)
SELECT NVL(DCC_FLAG,'N')
FROM
BANK_MASTER WHERE BANK_CODE = :B1
call count cpu elapsed disk query current rows
Parse 0 0.00 0.00 0 0 0 0
Execute 27208 18.57 17.01 0 0 0 0
Fetch 27208 15.62 13.78 0 54416 0 27208
total 54416 34.20 30.80 0 54416 0 27208
Misses in library cache during parse: 0
Optimizer mode: ALL_ROWS
Parsing user id: 61 (user) (recursive depth: 1)
Rows Execution Plan
0 SELECT STATEMENT MODE: ALL_ROWS
0 TABLE ACCESS MODE: ANALYZED (BY INDEX ROWID) OF 'BANK_MASTER'
(TABLE)
0 INDEX MODE: ANALYZED (UNIQUE SCAN) OF 'SYS_C006437' (INDEX
(UNIQUE))
SELECT DQP_VALIDATION
FROM
BANK_RPTFORMAT WHERE BANK_CODE = :B1
call count cpu elapsed disk query current rows
Parse 0 0.00 0.00 0 0 0 0
Execute 27208 17.87 16.04 0 0 0 0
Fetch 27208 30.71 29.51 0 81624 0 27208
total 54416 48.59 45.55 0 81624 0 27208
Misses in library cache during parse: 0
Optimizer mode: ALL_ROWS
Parsing user id: 61 (user) (recursive depth: 1)
Rows Execution Plan
0 SELECT STATEMENT MODE: ALL_ROWS
0 TABLE ACCESS MODE: ANALYZED (FULL) OF 'BANK_RPTFORMAT' (TABLE)
SELECT SUBSTR(TRANS, 4, 2)
FROM
RAW_BTH WHERE BTHSEQ = :B1
call count cpu elapsed disk query current rows
Parse 0 0.00 0.00 0 0 0 0
Execute 42708 30.01 27.46 0 0 0 0
Fetch 42708 82.06 6168.61 2014 170918 0 42708
total 85416 112.07 6196.08 2014 170918 0 42708
Misses in library cache during parse: 0
Optimizer mode: ALL_ROWS
Parsing user id: 61 (user) (recursive depth: 1)
Rows Execution Plan
0 SELECT STATEMENT MODE: ALL_ROWS
0 TABLE ACCESS MODE: ANALYZED (BY INDEX ROWID) OF 'RAW_BTH'
(TABLE)
0 INDEX MODE: ANALYZED (RANGE SCAN) OF 'RAW_BTH_IDX' (INDEX)
SELECT BTH_KEY,BTH_NO
FROM
BTH_REG WHERE BTH_KEY = :B1
call count cpu elapsed disk query current rows
Parse 0 0.00 0.00 0 0 0 0
Execute 8219 6.09 5.21 0 0 0 0
Fetch 8219 4.60 4.54 0 16559 0 1266
total 16438 10.70 9.75 0 16559 0 1266
Misses in library cache during parse: 0
Optimizer mode: ALL_ROWS
Parsing user id: 61 (user) (recursive depth: 1)
Rows Execution Plan
0 SELECT STATEMENT MODE: ALL_ROWS
0 INDEX MODE: ANALYZED (RANGE SCAN) OF 'BTH_REG_BTH_KEY_IDX'
(INDEX)
SELECT COUNT(*)
FROM
BTH_REG WHERE BTH_KEY=:B2 ||:B1
call count cpu elapsed disk query current rows
Parse 0 0.00 0.00 0 0 0 0
Execute 8195 6.93 6.52 0 0 0 0
Fetch 8195 5.70 4.88 0 16454 0 8195
total 16390 12.64 11.41 0 16454 0 8195
Misses in library cache during parse: 0
Optimizer mode: ALL_ROWS
Parsing user id: 61 (user) (recursive depth: 1)
Rows Execution Plan
0 SELECT STATEMENT MODE: ALL_ROWS
0 SORT (AGGREGATE)
0 INDEX MODE: ANALYZED (RANGE SCAN) OF 'BTH_REG_IDX' (INDEX)
SELECT *
FROM
ME_UTI WHERE MID_UTI=:B1
call count cpu elapsed disk query current rows
Parse 0 0.00 0.00 0 0 0 0
Execute 8195 6.37 6.20 0 0 0 0
Fetch 8195 8983.73 9067.57 0 13595505 0 7750
total 16390 8990.10 9073.78 0 13595505 0 7750
Misses in library cache during parse: 0
Optimizer mode: ALL_ROWS
Parsing user id: 61 (user) (recursive depth: 1)
Rows Execution Plan
0 SELECT STATEMENT MODE: ALL_ROWS
0 VIEW OF 'index$_join$_002' (VIEW)
0 HASH JOIN
0 INDEX MODE: ANALYZED (RANGE SCAN) OF 'COMP' (INDEX)
0 INDEX MODE: ANALYZED (FAST FULL SCAN) OF
'CMPPK_MERCHANT_MASTER' (INDEX (UNIQUE))
SELECT TRANS,BANK_CODE,BTHSEQ,VALIDITY_FLAG
FROM
RAW_BTH ORDER BY BANK_CODE,BTHSEQ
call count cpu elapsed disk query current rows
Parse 0 0.00 0.00 0 0 0 0
Execute 0 0.00 0.00 0 0 0 0
Fetch 536 12.39 13.24 1819 0 0 53600
total 536 12.39 13.24 1819 0 0 53600
Misses in library cache during parse: 0
Parsing user id: 61 (user) (recursive depth: 1)
UPDATE BTH_REG SET BTH_NO=:B3
WHERE
BTH_KEY=:B2 ||:B1
call count cpu elapsed disk query current rows
Parse 0 0.00 0.00 0 0 0 0
Execute 1242 5.78 5.52 0 2504 8755 1242
Fetch 0 0.00 0.00 0 0 0 0
total 1242 5.78 5.52 0 2504 8755 1242
Misses in library cache during parse: 0
Optimizer mode: ALL_ROWS
Parsing user id: 61 (user) (recursive depth: 1)
Rows Execution Plan
0 UPDATE STATEMENT MODE: ALL_ROWS
0 UPDATE OF 'BTH_REG'
0 INDEX MODE: ANALYZED (RANGE SCAN) OF 'BTH_REG_BTH_KEY_IDX'
(INDEX)
SELECT TRANS,BANK_CODE,BTHSEQ
FROM
RAW_BTH WHERE BTHSEQ >= :B2 AND BTHSEQ <= :B1 ORDER BY BANK_CODE,BTHSEQ
call count cpu elapsed disk query current rows
Parse 0 0.00 0.00 0 0 0 0
Execute 469 0.28 0.33 0 0 0 0
Fetch 472 154.29 156.48 124 495389 0 3146
total 941 154.57 156.81 124 495389 0 3146
Misses in library cache during parse: 0
Optimizer mode: ALL_ROWS
Parsing user id: 61 (user) (recursive depth: 1)
Rows Execution Plan
0 SELECT STATEMENT MODE: ALL_ROWS
0 FILTER
0 TABLE ACCESS MODE: ANALYZED (BY INDEX ROWID) OF 'RAW_BTH'
(TABLE)
0 INDEX MODE: ANALYZED (FULL SCAN) OF
'RAW_BTH_BKCODE_SEQ_IDX' (INDEX)
********************************************************************************Especially in the below query the logical I/O is alot along with the elapsed time
SELECT *
FROM
ME_UTI WHERE MID_UTI=:B1
call count cpu elapsed disk query current rows
Parse 0 0.00 0.00 0 0 0 0
Execute 8195 6.37 6.20 0 0 0 0
Fetch 8195 8983.73 9067.57 0 13595505 0 7750
total 16390 8990.10 9073.78 0 13595505 0 7750
Misses in library cache during parse: 0
Optimizer mode: ALL_ROWS
Parsing user id: 61 (user) (recursive depth: 1)
Rows Execution Plan
0 SELECT STATEMENT MODE: ALL_ROWS
0 VIEW OF 'index$_join$_002' (VIEW)
0 HASH JOIN
0 INDEX MODE: ANALYZED (RANGE SCAN) OF 'COMP' (INDEX)
0 INDEX MODE: ANALYZED (FAST FULL SCAN) OF
'CMPPK_MERCHANT_MASTER' (INDEX (UNIQUE))
04:16:43database >@index_col
Enter value for table_name: ACQ_MERCHANT_MASTER
Enter value for owner: user
TABLE_NAME INDEX_NAME COLUMN_NAME COLUMN_POSITION
ACQ_MERCHANT_MASTER COMP DBANAME 2
ACQ_MERCHANT_MASTER COMP MCC 3
ACQ_MERCHANT_MASTER COMP BRANCH_CODE 4
ACQ_MERCHANT_MASTER COMP MISC10 5
ACQ_MERCHANT_MASTER COMP FIRC_FLAG 6
ACQ_MERCHANT_MASTER COMP MCA_FLAG 7
ACQ_MERCHANT_MASTER MEMASTTERMINALID TERMINAL_ID 1
ACQ_MERCHANT_MASTER CMPPK_MERCHANT_MASTER MERCHANT_CODE 1
ACQ_MERCHANT_MASTER CMPPK_MERCHANT_MASTER BANK_CODE 2
ACQ_MERCHANT_MASTER COMP BANK_CODE 1
10 rows selected.The ME_UTI is a view. The text of the view is
04:07:41database >select VIEW_NAME,TEXT from dba_views where view_name='ME_UTI';
VIEW_NAME TEXT
ME_UTI Select substr(lpad(merchant_code,15,'0'),4,12) MID_UTI,substr(dbaname,1,40) ME_NAME
from ACQ_MERCHANT_MASTER
where bank_code='00013'What are your suggestions????? What can be done.
Anand>
Anand,
first of all I think that the row-by-row processing issue identified by others is much more significant to your batch processing run time than any of the things that I've mentioned. So you quite likely achieve the biggest gain in performance by re-writing the process to use plain SQL as much as possible instead of PL/SQL loops.
That said, the parameters that I've questioned might be very reasonable for your particular environment. I just wanted to ask how you arrived at these values, e.g. measured your average index / block caching pattern to arrive at these values or similar.
I agree with you.Higher db_file_multiblock_read_count and lower optimizer_index_cost_adj will make FTS more cheaper.No, not really. Your index based costs are 10 times lower, but your FTS costs are not even two times lower compared to default settings, so your current settings actually favor index access significantly.
Consider:
SQL>
SQL> exec dbms_random.seed(0)
PL/SQL procedure successfully completed.
Elapsed: 00:00:00.01
SQL>
SQL> drop table t1 purge;
Table dropped.
Elapsed: 00:00:00.16
SQL>
SQL> create table t1
2 pctfree 99
3 pctused 1
4 -- tablespace test_2k
5 -- tablespace test_4k
6 tablespace test_8k
7 -- tablespace test_16k
8 as
9 with generator as (
10 select --+ materialize
11 rownum id
12 from all_objects
13 where rownum <= 3000
14 )
15 select
16 /*+ ordered use_nl(v2) */
17 rownum id,
18 trunc(100 * dbms_random.normal) val,
19 rpad('x',100) padding
20 from
21 generator v1,
22 generator v2
23 where
24 rownum <= 10000
25 ;
Table created.
Elapsed: 00:00:02.53
SQL>
SQL> begin
2 dbms_stats.gather_table_stats(
3 user,
4 't1',
5 cascade => true,
6 estimate_percent => null,
7 method_opt => 'for all columns size 1'
8 );
9 end;
10 /
PL/SQL procedure successfully completed.
Elapsed: 00:00:02.58
SQL>
SQL> select
2 sum(bytes)/1024/1024 as size_mb
3 from
4 user_segments
5 where
6 segment_name = 'T1';
SIZE_MB
79
Elapsed: 00:00:00.24
SQL>
SQL> -- default NOWORKLOAD system statistics
SQL> column sname format a20
SQL> column pname format a20
SQL> column pval2 format a20
SQL>
SQL> select
2 sname
3 , pname
4 , pval1
5 , pval2
6 from
7 sys.aux_stats$;
SNAME PNAME PVAL1 PVAL2
SYSSTATS_INFO STATUS COMPLETED
SYSSTATS_INFO DSTART 03-19-2009 18:28
SYSSTATS_INFO DSTOP 03-19-2009 18:28
SYSSTATS_INFO FLAGS 0
SYSSTATS_MAIN CPUSPEEDNW 408,478
SYSSTATS_MAIN IOSEEKTIM 10
SYSSTATS_MAIN IOTFRSPEED 4096
SYSSTATS_MAIN SREADTIM
SYSSTATS_MAIN MREADTIM
SYSSTATS_MAIN CPUSPEED
SYSSTATS_MAIN MBRC
SYSSTATS_MAIN MAXTHR
SYSSTATS_MAIN SLAVETHR
13 rows selected.
Elapsed: 00:00:00.03
SQL>
SQL> alter session set db_file_multiblock_read_count = 8;
Session altered.
Elapsed: 00:00:00.01
SQL>
SQL> explain plan for
2 select
3 max(val)
4 from
5 t1;
Explained.
Elapsed: 00:00:00.01
SQL>
SQL> select * from table(dbms_xplan.display);
PLAN_TABLE_OUTPUT
Plan hash value: 3724264953
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
| 0 | SELECT STATEMENT | | 1 | 4 | 2725 (1)| 00:00:33 |
| 1 | SORT AGGREGATE | | 1 | 4 | | |
| 2 | TABLE ACCESS FULL| T1 | 10000 | 40000 | 2725 (1)| 00:00:33 |
9 rows selected.
Elapsed: 00:00:00.12
SQL>
SQL> rollback;
Rollback complete.
Elapsed: 00:00:00.01
SQL>
SQL> alter session set db_file_multiblock_read_count = 64;
Session altered.
Elapsed: 00:00:00.01
SQL>
SQL> explain plan for
2 select
3 max(val)
4 from
5 t1;
Explained.
Elapsed: 00:00:00.02
SQL>
SQL> select * from table(dbms_xplan.display);
PLAN_TABLE_OUTPUT
Plan hash value: 3724264953
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
| 0 | SELECT STATEMENT | | 1 | 4 | 1814 (1)| 00:00:22 |
| 1 | SORT AGGREGATE | | 1 | 4 | | |
| 2 | TABLE ACCESS FULL| T1 | 10000 | 40000 | 1814 (1)| 00:00:22 |
9 rows selected.
Elapsed: 00:00:00.12
SQL>
SQL> rollback;
Rollback complete.
Elapsed: 00:00:00.01
SQL>
SQL> create index t1_idx on t1 (id);
Index created.
Elapsed: 00:00:01.70
SQL>
SQL> alter table t1 modify id not null;
Table altered.
Elapsed: 00:00:01.63
SQL>
SQL> alter session set optimizer_index_cost_adj = 100;
Session altered.
Elapsed: 00:00:00.00
SQL>
SQL> explain plan for
2 select /*+ index (t1) */
3 *
4 from
5 t1
6 order by
7 id;
Explained.
Elapsed: 00:00:00.07
SQL>
SQL> select * from table(dbms_xplan.display);
PLAN_TABLE_OUTPUT
Plan hash value: 510677707
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
| 0 | SELECT STATEMENT | | 10000 | 1054K| 10037 (1)| 00:02:01 |
| 1 | TABLE ACCESS BY INDEX ROWID| T1 | 10000 | 1054K| 10037 (1)| 00:02:01 |
| 2 | INDEX FULL SCAN | T1_IDX | 10000 | | 22 (0)| 00:00:01 |
9 rows selected.
Elapsed: 00:00:00.14
SQL>
SQL> rollback;
Rollback complete.
Elapsed: 00:00:00.01
SQL>
SQL> alter session set optimizer_index_cost_adj = 10;
Session altered.
Elapsed: 00:00:00.00
SQL>
SQL> -- no hint required, will use index anyway
SQL> explain plan for
2 select
3 *
4 from
5 t1
6 order by
7 id;
Explained.
Elapsed: 00:00:00.01
SQL>
SQL> select * from table(dbms_xplan.display);
PLAN_TABLE_OUTPUT
Plan hash value: 510677707
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
| 0 | SELECT STATEMENT | | 10000 | 1054K| 1004 (1)| 00:00:13 |
| 1 | TABLE ACCESS BY INDEX ROWID| T1 | 10000 | 1054K| 1004 (1)| 00:00:13 |
| 2 | INDEX FULL SCAN | T1_IDX | 10000 | | 2 (0)| 00:00:01 |
9 rows selected.
Elapsed: 00:00:00.10
SQL>
SQL> rollback;
Rollback complete.
Elapsed: 00:00:00.00
SQL> As you can see the index costs are lower by an order of magnitude, making the optimizer favor the index full scan instead of the FTS (full table scan) when using the OICA (optimizer_index_cost_adj) setting of 10, even when using the MBRC (db_file_multiblock_read_count) setting of 64, because the higher MBRC setting reduces the FTS costs only from ~2700 to ~1800.
The moderate reduction in FTS costs is caused by the formula used by the NOWORKLOAD system statistics to derive the MREADTIM and SREADTIM values from the IOSEEKTIM, MBRC, DB_BLOCK_SIZE and IOTFRSPEED values.
When MBRC = 8:
SREADTIM = IOSEEKTIM + DB_BLOCK_SIZE/IOTFRSPEED = 10 + 8192 / 4096 = 10 + 2 = 12ms
MREADTIM = IOSEEKTIM + MBRC * DB_BLOCK_SIZE/IOTFRSPEED = 10 + 8 * 8192 / 4096 = 10 + 16 = 26ms
FTS cost for reading 10,000 blocks (80MB):
10,000 / 8 * MREADTIM / SREADTIM = 1,250 * 26 / 12 = 2,709 (+ CPU cost)
When MBRC = 64:
SREADTIM = IOSEEKTIM + DB_BLOCK_SIZE/IOTFRSPEED = 10 + 8192 / 4096 = 10 + 2 = 12ms
MREADTIM = IOSEEKTIM + MBRC * DB_BLOCK_SIZE/IOTFRSPEED = 10 + 64 * 8192 / 4096 = 10 + 128 = 138ms
FTS cost for reading 10,000 blocks (80MB):
10,000 / 64 * MREADTIM / SREADTIM = 157 * 138 / 12 = 1,806 (+ CPU cost)
So in a nutshell using NOWORKLOAD system statistics the derived MREADTIM is quite large, therefore the net reduction in cost is moderate when increasing the MBRC.
Furthermore when using a low OICA setting you have the inherent risk that due to the reduction in index cost multiple indexes can end up with the same cost making the optimizer choose a bad index over an good index since indexes having the same cost will be chosen by index name...
That's one of the major drawbacks of low OICA settings.
How did you know that we are using default NOWORKLOAD system statistics.
SYSSTATS_MAIN IOSEEKTIM 10
SYSSTATS_MAIN IOTFRSPEED 4096These are the default settings, a seek time of 10ms and 4096 bytes per millisecond transfer speed, which is a very conservative assumption (4MB/sec. transfer speed)
because it looks like that your trace file doesn't contain any STATS lines because all cursors were still held open when the tracing was disabledCan you elaborate more.Up to 10.2 Oracle writes STAT lines into the trace file only if the corresponding cursor got closed. Since your PL/SQL procedure obviously benefits from the PL/SQL cursor cache I assume that the cursors have not been closed. You can check the generated trace file for STAT lines representing the actual row source operation statistics.
Note that 11g changes this, and the default behaviour is to write the STAT lines at first execution, which is basically a good idea but it can be misleading (as STAT statistics for further executions of the same child cursor might be missing from the trace file). For more information, see e.g. here:
http://antognini.ch/2009/02/11g-new-feature-in-dbms_monitor/
You don't need to use the EXPLAIN option of TKPROF, having the "Row Source Operations" recorded in the trace file is of much more valueWhy?The "Row Source Operation" tells you for each operation of the actual execution plan used the number of logical I/Os, physical I/Os and elapsed time, which tells you very exactly which step of the execution caused what kind of work.
The EXPLAIN PLAN output of TKPROF only shows an EXPLAIN PLAN, therefore it can be quite different from the actual execution plan used, especially if bind variables are used, which is the default when using static SQL in PL/SQL.
Can i have your email id.Follow the provided links, these include contact information if required.
Regards,
Randolf
Oracle related stuff blog:
http://oracle-randolf.blogspot.com/
SQLTools++ for Oracle (Open source Oracle GUI for Windows):
http://www.sqltools-plusplus.org:7676/
http://sourceforge.net/projects/sqlt-pp/ -
Suggestions from tkprof output
Hi All,
I need to tune the following sql query. I have given the tkprof output of the sql, can you please suggest ways to improvise the query?
Trace file: hsctst09_ora_1671386_10046.trc
Sort options: prsela fchela exeela
count = number of times OCI procedure was executed
cpu = cpu time in seconds executing
elapsed = elapsed time in seconds executing
disk = number of physical reads of buffers from disk
query = number of buffers gotten for consistent read
current = number of buffers gotten in current mode (usually for update)
rows = number of rows processed by the fetch or execute call
error connecting to database using: rms12/rms12
ORA-01017: invalid username/password; logon denied
EXPLAIN PLAN option disabled.
select distinct RPE.promo_event_display_id Event_Number,
RPE.description Event_Description,
RPE.start_date Event_Start_Date,
RPE.end_date Event_End_Date,
(CASE RPD.state
WHEN 'pcd.active' THEN 'Active'
WHEN 'pcd.approved' THEN 'Approved'
WHEN 'pcd.cancelled' THEN 'Cancelled'
WHEN 'pcd.conflictCheckForApproved' THEN 'Conflict Check'
WHEN 'pcd.submitted' THEN 'Submitted'
WHEN 'pcd.complete' THEN 'Complete'
WHEN 'pcd.substate.working.worksheet' THEN 'Worksheet'
ELSE 'Unknown'
END) Event_Status,
RP.promo_display_id Promotion_ID,
RP.description Promotion_Description,
RP.start_date Promotion_Start_Date,
RP.end_date Promotion_End_Date,
RPDT.dept Valid_Section,
RTH.threshold_display_id Threshold_Number,
RTH.name Threshold_Description,
RPC.comp_display_id Component_ID,
RPC.name Component_Description,
RPC.tsl_comp_level_desc Description_at_the_till,
'Threshold' Component_Type,
RPC.tsl_ext_promo_id External_ID,
decode(RPC.funding_percent,null,'No','Yes') Funding_Indicator,
(CASE RPD.apply_to_code
WHEN 0 THEN 'Regular Only'
WHEN 1 THEN 'Clearance Only'
WHEN 2 THEN 'Regular and Clearance'
ELSE NULL
END) Apply_to,
RPD.start_date Component_start_date,
RPD.end_date Component_End_Date,
'="'||RPT.item||'"' Item,
IM.item_desc Item_Description,
'="'||TRPCT.tpnd_id||'"' Pack,
IM1.item_desc Pack_Description,
decode(TRPCT.primary_tpnd,1,'Yes','No') Primary_Pack,
RPC.funding_percent Corporate_Funding_Percent,
DP.contribution_pct Supplier_Funding_Percent,
RPCT.uptake_percent Uptake_Percent,
RPT.tsl_uplift_perc Uplift_Percent,
NULL List_Type,
NULL Buy_Type,
NULL Buy_Value,
(CASE RTI.threshold_type
WHEN 0 THEN 'Amount'
WHEN 1 THEN 'Quantity'
WHEN 2 THEN 'Weight'
ELSE NULL
END) Get_Type,
RTI.threshold_amount Get_Value,
(CASE RTI.change_type
WHEN 0 THEN 'Percent Off'
WHEN 1 THEN 'Amount Off'
WHEN 2 THEN 'Fixed Price'
WHEN 3 THEN 'No Change'
WHEN 4 THEN 'Exclude'
WHEN 5 THEN 'ClubCard Points'
WHEN 6 THEN 'Voucher'
WHEN 7 THEN 'Cheapest Free'
ELSE NULL
END) Change_Type,
RTI.change_amount Change_Amount,
RTI.tsl_voucher_number Voucher_Number,
NULL Get_Quantity,
RZFR.selling_uom Selling_UOM,
RPCT.tsl_coupon_number Coupon_Number,
RPCT.tsl_coupon_desc Coupon_Description,
RPT.zone_id Zone,
RPD.Ignore_Constraints Ignore_Constraints,
RPT.tsl_feature_space_end_num Feature_Space
from rpm_promo RP,
rpm_promo_comp RPC,
rpm_promo_comp_detail RPD,
rpm_promo_event RPE,
rpm_promo_dept RPDT,
rpm_promo_comp_threshold RPT,
rpm_threshold RTH,
rpm_threshold_interval RTI,
v_item_master IM,
item_supplier SU,
rpm_promo_comp_thresh_link RPCT,
tsl_rpm_promo_comp_tpnd TRPCT,
v_item_master IM1,
rpm_zone_future_retail RZFR,
( select isu.supplier,
isu.item,
dh.deal_id,
dcp.promotion_id,
dcp.promo_comp_id,
dcp.contribution_pct
from item_supplier isu inner join
deal_head dh on (isu.supplier = dh.supplier)
inner join deal_comp_prom dcp on (dcp.deal_id = dh.deal_id) ) dp
where RP.promo_id = RPC.promo_id
and RPD.promo_comp_id = RPC.promo_comp_id
and RPE.promo_event_id = RP.promo_event_id
and RP.promo_id = RPDT.promo_id
and RPDT.dept = IM.dept
and DP.promotion_id (+) = RP.promo_id
and RPT.rpm_promo_comp_detail_id = RPD.rpm_promo_comp_detail_id
and RPT.threshold_id = RTH.threshold_id
and RPT.threshold_id = RTI.threshold_id
and TRPCT.rpm_promo_comp_detail_id = RPD.rpm_promo_comp_detail_id
and RPT.item = IM.item
and IM.item = SU.item
and RPD.promo_comp_id = RPCT.promo_comp_id
and TRPCT.tpnb_id = RPT.item
and TRPCT.tpnd_id = IM1.item
and RZFR.item = IM.item
UNION ALL
-- Simple Query
select distinct RPE.promo_event_display_id Event_Number,
RPE.description Event_Description,
RPE.start_date Event_Start_Date,
RPE.end_date Event_End_Date,
(CASE RPD.state
WHEN 'pcd.active' THEN 'Active'
WHEN 'pcd.approved' THEN 'Approved'
WHEN 'pcd.cancelled' THEN 'Cancelled'
WHEN 'pcd.conflictCheckForApproved' THEN 'Conflict Check'
WHEN 'pcd.submitted' THEN 'Submitted'
WHEN 'pcd.complete' THEN 'Complete'
WHEN 'pcd.substate.working.worksheet' THEN 'Worksheet'
ELSE 'Unknown'
END) Event_Status,
RP.promo_display_id Promotion_ID,
RP.description Promotion_Description,
RP.start_date Promotion_Start_Date,
RP.end_date Promotion_End_Date,
RPDT.dept Valid_Section,
NULL Threshold_Number,
NULL Threshold_Description,
RPC.comp_display_id Component_ID,
RPC.name Component_Description,
RPC.tsl_comp_level_desc Description_at_the_till,
'Simple' Component_Type,
RPC.tsl_ext_promo_id External_ID,
decode(RPC.funding_percent,null,'No','Yes') Funding_Indicator,
(CASE RPD.apply_to_code
WHEN 0 THEN 'Regular Only'
WHEN 1 THEN 'Clearance Only'
WHEN 2 THEN 'Regular and Clearance'
ELSE NULL
END) Apply_to,
RPD.start_date Component_start_date,
RPD.end_date Component_End_Date,
'="'||RPS.item||'"' Item,
IM.item_desc Item_Description,
'="'||TRPCT.tpnd_id||'"' Pack,
IM1.item_desc Pack_Description,
decode(TRPCT.primary_tpnd,1,'Yes','No') Primary_Pack,
RPC.funding_percent Corporate_Funding_Percent,
DP.contribution_pct Supplier_Funding_Percent,
RPS.tsl_simple_uptake_percent Uptake_Percent,
RPS.tsl_uplift_perc Uplift_Percent,
NULL List_Type,
NULL Buy_Type,
NULL Buy_Value,
NULL Get_Type,
NULL Get_Value,
(CASE RPS.change_type
WHEN 0 THEN 'Percent Off'
WHEN 1 THEN 'Amount Off'
WHEN 2 THEN 'Fixed Price'
WHEN 3 THEN 'No Change'
WHEN 4 THEN 'Exclude'
WHEN 5 THEN 'ClubCard Points'
WHEN 6 THEN 'Voucher'
WHEN 7 THEN 'Cheapest Free'
ELSE NULL
END) Change_Type,
RPS.change_amount Change_Amount,
RPS.tsl_voucher_number Voucher_Number,
NULL Get_Quantity,
RZFR.selling_uom Selling_UOM,
RPS.tsl_coupon_number Coupon_Number,
RPS.tsl_coupon_desc Coupon_Description,
RPS.zone_id Zone,
RPD.Ignore_Constraints Ignore_Constraints,
RPS.tsl_feature_space_end_num Feature_Space
from rpm_promo RP,
rpm_promo_comp RPC,
rpm_promo_comp_detail RPD,
rpm_promo_event RPE,
rpm_promo_dept RPDT,
rpm_promo_comp_simple RPS,
v_item_master IM,
item_supplier SU,
tsl_rpm_promo_comp_tpnd TRPCT,
v_item_master IM1,
rpm_zone_future_retail RZFR,
( select isu.supplier,
isu.item,
dh.deal_id,
dcp.promotion_id,
dcp.promo_comp_id,
dcp.contribution_pct
from item_supplier isu inner join
deal_head dh on (isu.supplier = dh.supplier)
inner join deal_comp_prom dcp on (dcp.deal_id = dh.deal_id) ) dp
where RP.promo_id = RPC.promo_id
and RPD.promo_comp_id = RPC.promo_comp_id
and RPE.promo_event_id = RP.promo_event_id
and RP.promo_id = RPDT.promo_id
and RPDT.dept = IM.dept
and DP.promotion_id (+) = RP.promo_id
and RPS.rpm_promo_comp_detail_id = RPD.rpm_promo_comp_detail_id
and TRPCT.rpm_promo_comp_detail_id = RPD.rpm_promo_comp_detail_id
and RPS.item = IM.item
and IM.item = SU.item
and RZFR.item = RPS.item
and TRPCT.tpnb_id = RPS.item
and TRPCT.tpnd_id = IM1.item
UNION ALL
-- Multi-Buy Query
select distinct RPE.promo_event_display_id Event_Number,
RPE.description Event_Description,
RPE.start_date Event_Start_Date,
RPE.end_date Event_End_Date,
(CASE RPD.state
WHEN 'pcd.active' THEN 'Active'
WHEN 'pcd.approved' THEN 'Approved'
WHEN 'pcd.cancelled' THEN 'Cancelled'
WHEN 'pcd.conflictCheckForApproved' THEN 'Conflict Check'
WHEN 'pcd.submitted' THEN 'Submitted'
WHEN 'pcd.complete' THEN 'Complete'
WHEN 'pcd.substate.working.worksheet' THEN 'Worksheet'
ELSE 'Unknown'
END) Event_Status,
RP.promo_display_id Promotion_ID,
RP.description Promotion_Description,
RP.start_date Promotion_Start_Date,
RP.end_date Promotion_End_Date,
RPDT.dept Valid_Section,
NULL Threshold_Number,
NULL Threshold_Description,
RPC.comp_display_id Component_ID,
RPC.name Component_Description,
RPC.tsl_comp_level_desc Description_at_the_till,
'MultiBuy' Component_Type,
RPC.tsl_ext_promo_id External_ID,
decode(RPC.funding_percent,null,'No','Yes') Funding_Indicator,
(CASE RPD.apply_to_code
WHEN 0 THEN 'Regular Only'
WHEN 1 THEN 'Clearance Only'
WHEN 2 THEN 'Regular and Clearance'
ELSE NULL
END) Apply_to,
RPD.start_date Component_start_date,
RPD.end_date Component_End_Date,
'="'||RPG.item||'"' Item,
IM.item_desc Item_Description,
'="'||TRPCT.tpnd_id||'"' Pack,
IM1.item_desc Pack_Description,
decode(TRPCT.primary_tpnd,1,'Yes','No') Primary_Pack,
RPC.funding_percent Corporate_Funding_Percent,
DP.contribution_pct Supplier_Funding_Percent,
NULL Uptake_Percent,
TRPM.uplift_perc Uplift_Percent,
decode(TBD.list_type,0,'Buy List',1,'Get List') List_Type,
TBD.buy_item_type Buy_Type,
TBD.buy_item_value Buy_Value,
NULL Get_Type,
NULL Get_Value,
(CASE TBD.change_type
WHEN 0 THEN 'Percent Off'
WHEN 1 THEN 'Amount Off'
WHEN 2 THEN 'Fixed Price'
WHEN 3 THEN 'No Change'
WHEN 4 THEN 'Exclude'
WHEN 5 THEN 'ClubCard Points'
WHEN 6 THEN 'Voucher'
WHEN 7 THEN 'Cheapest Free'
ELSE NULL
END) Change_Type,
TBD.change_amount Change_Amount,
TBD.voucher_number Voucher_Number,
TBD.get_quantity Get_Quantity,
RZPR.selling_uom Selling_UOM,
TB.tsl_coupon_number Coupon_Number,
TB.tsl_coupon_desc Coupon_Description,
TBZ.zone_id Zone,
RPD.Ignore_Constraints Ignore_Constraints,
NULL Feature_Space
from rpm_promo RP,
rpm_promo_comp RPC,
rpm_promo_comp_detail RPD,
rpm_promo_event RPE,
rpm_promo_dept RPDT,
tsl_rpm_promo_comp_m_b TB,
tsl_rpm_promo_comp_m_b_dtl TBD,
tsl_rpm_promo_multi_buy_zone TBZ,
tsl_rpm_promo_get_item RPG,
v_item_master IM,
item_supplier SU,
tsl_rpm_promo_comp_tpnd TRPCT,
v_item_master IM1,
rpm_zone_future_retail RZPR,
tsl_rpm_promo_mb_attr TRPM,
( select isu.supplier,
isu.item,
dh.deal_id,
dcp.promotion_id,
dcp.promo_comp_id,
dcp.contribution_pct
from item_supplier isu inner join
deal_head dh on (isu.supplier = dh.supplier)
inner join deal_comp_prom dcp on (dcp.deal_id = dh.deal_id) ) dp
where RP.promo_id = RPC.promo_id
and RPD.promo_comp_id = RPC.promo_comp_id
and RPE.promo_event_id = RP.promo_event_id
and RP.promo_id = RPDT.promo_id
and RPDT.dept = IM.dept
and DP.promotion_id (+) = RP.promo_id
and RPD.rpm_promo_comp_detail_id = TB.rpm_promo_comp_detail_id
and TB.rpm_promo_comp_detail_id = TBD.rpm_promo_comp_detail_id
and TBD.rpm_promo_comp_detail_id = TBZ.rpm_promo_comp_detail_id
and RPG.item = IM.item
and IM.item = SU.item
and TRPM.item = RPG.item
and TRPM.rpm_promo_comp_detail_id = RPD.rpm_promo_comp_detail_id
and TRPM.zone_id = TBZ.zone_id
and RZPR.item = RPG.item
and TRPCT.tpnb_id = RPG.item
and TRPCT.tpnd_id = IM1.itemcall count cpu elapsed disk query current rows
Parse 1 4.16 4.48 0 0 0 0
Execute 1 0.00 0.00 0 0 0 0
Fetch 5 53.01 276.29 91547 1615664 9 48
total 7 57.17 280.78 91547 1615664 9 48
Misses in library cache during parse: 1
Optimizer mode: CHOOSE
Parsing user id: 191
Rows Row Source Operation
48 UNION-ALL (cr=17287 pr=3663 pw=1876 time=2033194 us)
13 SORT UNIQUE (cr=11286 pr=1052 pw=0 time=2033182 us)
364 NESTED LOOPS OUTER (cr=11286 pr=1052 pw=0 time=1861854 us)
364 NESTED LOOPS (cr=10922 pr=1051 pw=0 time=1857466 us)
75 NESTED LOOPS (cr=10770 pr=1041 pw=0 time=1855506 us)
15 NESTED LOOPS (cr=10723 pr=1029 pw=0 time=1857844 us)
15 NESTED LOOPS (cr=10691 pr=1021 pw=0 time=1857525 us)
15 NESTED LOOPS (cr=10689 pr=1021 pw=0 time=1857391 us)
15 NESTED LOOPS (cr=10657 pr=1017 pw=0 time=1856760 us)
15 NESTED LOOPS (cr=10655 pr=1017 pw=0 time=1856639 us)
15 NESTED LOOPS (cr=10623 pr=1006 pw=0 time=1855895 us)
15 NESTED LOOPS (cr=10606 pr=1003 pw=0 time=1846410 us)
1208 NESTED LOOPS (cr=8188 pr=989 pw=0 time=1846542 us)
1208 NESTED LOOPS (cr=5770 pr=978 pw=0 time=1834421 us)
1208 NESTED LOOPS (cr=4560 pr=971 pw=0 time=1821047 us)
1208 HASH JOIN (cr=3350 pr=970 pw=0 time=1801632 us)
1367 HASH JOIN (cr=2533 pr=157 pw=0 time=25928 us)
96 TABLE ACCESS FULL RPM_PROMO_COMP_THRESH_LINK (cr=9 pr=8 pw=0 time=435 us)
1371 HASH JOIN (cr=2524 pr=149 pw=0 time=24005 us)
1371 TABLE ACCESS FULL RPM_PROMO_COMP_THRESHOLD (cr=47 pr=0 pw=0 time=33 us)
190227 TABLE ACCESS FULL RPM_PROMO_COMP_DETAIL (cr=2477 pr=149 pw=0 time=87 us)
132392 TABLE ACCESS FULL TSL_RPM_PROMO_COMP_TPND (cr=817 pr=813 pw=0 time=337 us)
1208 TABLE ACCESS BY INDEX ROWID RPM_THRESHOLD_INTERVAL (cr=1210 pr=1 pw=0 time=16962 us)
1208 INDEX RANGE SCAN RPM_THRESHOLD_INTERVAL_I1 (cr=2 pr=1 pw=0 time=4680 us)(object id 459922)
1208 TABLE ACCESS BY INDEX ROWID RPM_THRESHOLD (cr=1210 pr=7 pw=0 time=8397 us)
1208 INDEX UNIQUE SCAN PK_RPM_THRESHOLD (cr=2 pr=1 pw=0 time=3405 us)(object id 459954)
1208 TABLE ACCESS BY INDEX ROWID RPM_PROMO_COMP (cr=2418 pr=11 pw=0 time=37425 us)
1208 INDEX UNIQUE SCAN PK_RPM_PROMO_COMP (cr=1210 pr=4 pw=0 time=4700 us)(object id 459902)
15 TABLE ACCESS BY INDEX ROWID RPM_PROMO (cr=2418 pr=14 pw=0 time=69147 us)
1208 INDEX UNIQUE SCAN PK_RPM_PROMO (cr=1210 pr=4 pw=0 time=4755 us)(object id 459849)
15 TABLE ACCESS BY INDEX ROWID RPM_PROMO_EVENT (cr=17 pr=3 pw=0 time=9808 us)
15 INDEX UNIQUE SCAN PK_RPM_PROMO_EVENT (cr=2 pr=0 pw=0 time=55 us)(object id 459871)
15 TABLE ACCESS BY INDEX ROWID ITEM_MASTER (cr=32 pr=11 pw=0 time=638 us)
15 INDEX UNIQUE SCAN PK_ITEM_MASTER (cr=17 pr=7 pw=0 time=398 us)(object id 460014)
15 INDEX UNIQUE SCAN PK_DEPS (cr=2 pr=0 pw=0 time=55 us)(object id 460063)
15 TABLE ACCESS BY INDEX ROWID ITEM_MASTER (cr=32 pr=4 pw=0 time=284 us)
15 INDEX UNIQUE SCAN PK_ITEM_MASTER (cr=17 pr=3 pw=0 time=179 us)(object id 460014)
15 INDEX UNIQUE SCAN PK_DEPS (cr=2 pr=0 pw=0 time=47 us)(object id 460063)
15 INDEX UNIQUE SCAN PK_RPM_PROMO_DEPT (cr=32 pr=8 pw=0 time=423 us)(object id 461683)
75 TABLE ACCESS BY INDEX ROWID RPM_ZONE_FUTURE_RETAIL (cr=47 pr=12 pw=0 time=846 us)
75 INDEX RANGE SCAN RPM_ZONE_FUTURE_RETAIL_I1 (cr=32 pr=12 pw=0 time=536 us)(object id 459917)
364 INDEX RANGE SCAN PK_ITEM_SUPPLIER (cr=152 pr=10 pw=0 time=915 us)(object id 461283)
0 VIEW PUSHED PREDICATE (cr=364 pr=1 pw=0 time=4468 us)
0 NESTED LOOPS (cr=364 pr=1 pw=0 time=4023 us)
0 NESTED LOOPS (cr=364 pr=1 pw=0 time=3596 us)
0 TABLE ACCESS BY INDEX ROWID DEAL_COMP_PROM (cr=364 pr=1 pw=0 time=2839 us)
0 INDEX SKIP SCAN PK_DEAL_COMP_PROM (cr=364 pr=1 pw=0 time=2252 us)(object id 460586)
0 TABLE ACCESS BY INDEX ROWID DEAL_HEAD (cr=0 pr=0 pw=0 time=0 us)
0 INDEX UNIQUE SCAN PK_DEAL_HEAD (cr=0 pr=0 pw=0 time=0 us)(object id 460002)
0 INDEX RANGE SCAN ITEM_SUPPLIER_I1 (cr=0 pr=0 pw=0 time=0 us)(object id 461281)
35 SORT UNIQUE (cr=6001 pr=2611 pw=1876 time=1787923 us)
483 TABLE ACCESS BY INDEX ROWID RPM_ZONE_FUTURE_RETAIL (cr=6001 pr=2611 pw=1876 time=1781697 us)
579 NESTED LOOPS (cr=5969 pr=2609 pw=1876 time=205507332 us)
95 NESTED LOOPS (cr=5777 pr=2600 pw=1876 time=1777879 us)
41 NESTED LOOPS (cr=5693 pr=2592 pw=1876 time=1778919 us)
41 HASH JOIN (cr=5609 pr=2573 pw=1876 time=1778377 us)
276 TABLE ACCESS FULL DEPS (cr=5 pr=0 pw=0 time=36 us)
41 NESTED LOOPS (cr=5604 pr=2573 pw=1876 time=1776404 us)
41 HASH JOIN (cr=5520 pr=2567 pw=1876 time=1776506 us)
41 NESTED LOOPS (cr=5515 pr=2567 pw=1876 time=1753418 us)
41 HASH JOIN (cr=5431 pr=2555 pw=1876 time=1752249 us)
132392 TABLE ACCESS FULL TSL_RPM_PROMO_COMP_TPND (cr=817 pr=0 pw=0 time=44 us)
57 HASH JOIN (cr=4614 pr=1820 pw=1099 time=1200744 us)
129467 TABLE ACCESS FULL RPM_PROMO_COMP_SIMPLE (cr=1693 pr=164 pw=0 time=186 us)
45903 HASH JOIN (cr=2921 pr=557 pw=0 time=81106 us)
236 HASH JOIN (cr=444 pr=28 pw=0 time=37993 us)
373 NESTED LOOPS OUTER (cr=413 pr=23 pw=0 time=10806 us)
373 HASH JOIN (cr=40 pr=23 pw=0 time=6301 us)
277 TABLE ACCESS FULL RPM_PROMO_EVENT (cr=6 pr=1 pw=0 time=79 us)
373 TABLE ACCESS FULL RPM_PROMO (cr=34 pr=22 pw=0 time=4177 us)
0 VIEW PUSHED PREDICATE (cr=373 pr=0 pw=0 time=4164 us)
0 NESTED LOOPS (cr=373 pr=0 pw=0 time=3634 us)
0 NESTED LOOPS (cr=373 pr=0 pw=0 time=3221 us)
0 TABLE ACCESS BY INDEX ROWID DEAL_COMP_PROM (cr=373 pr=0 pw=0 time=2799 us)
0 INDEX SKIP SCAN PK_DEAL_COMP_PROM (cr=373 pr=0 pw=0 time=2244 us)(object id 460586)
0 TABLE ACCESS BY INDEX ROWID DEAL_HEAD (cr=0 pr=0 pw=0 time=0 us)
0 INDEX UNIQUE SCAN PK_DEAL_HEAD (cr=0 pr=0 pw=0 time=0 us)(object id 460002)
0 INDEX RANGE SCAN ITEM_SUPPLIER_I1 (cr=0 pr=0 pw=0 time=0 us)(object id 461281)
1452 TABLE ACCESS FULL RPM_PROMO_COMP (cr=31 pr=5 pw=0 time=8984 us)
190227 TABLE ACCESS FULL RPM_PROMO_COMP_DETAIL (cr=2477 pr=529 pw=0 time=1525455 us)
41 TABLE ACCESS BY INDEX ROWID ITEM_MASTER (cr=84 pr=12 pw=0 time=21811 us)
41 INDEX UNIQUE SCAN PK_ITEM_MASTER (cr=43 pr=2 pw=0 time=500 us)(object id 460014)
276 TABLE ACCESS FULL DEPS (cr=5 pr=0 pw=0 time=39 us)
41 TABLE ACCESS BY INDEX ROWID ITEM_MASTER (cr=84 pr=6 pw=0 time=750 us)
41 INDEX UNIQUE SCAN PK_ITEM_MASTER (cr=43 pr=2 pw=0 time=360 us)(object id 460014)
41 INDEX UNIQUE SCAN PK_RPM_PROMO_DEPT (cr=84 pr=19 pw=0 time=1025 us)(object id 461683)
95 INDEX RANGE SCAN PK_ITEM_SUPPLIER (cr=84 pr=8 pw=0 time=717 us)(object id 461283)
483 INDEX RANGE SCAN RPM_ZONE_FUTURE_RETAIL_I1 (cr=192 pr=9 pw=0 time=1661 us)(object id 459917)
0 SORT UNIQUE (cr=0 pr=0 pw=0 time=34 us)
0 HASH JOIN (cr=0 pr=0 pw=0 time=8 us)
276 TABLE ACCESS FULL DEPS (cr=5 pr=0 pw=0 time=175 us)
0 HASH JOIN (cr=0 pr=0 pw=0 time=4 us)
110442 TABLE ACCESS FULL RPM_ZONE_FUTURE_RETAIL (cr=990 pr=101 pw=0 time=108 us)
0 HASH JOIN (cr=0 pr=0 pw=0 time=11 us)
126852 TABLE ACCESS FULL ITEM_MASTER (cr=5389 pr=5268 pw=0 time=1522285 us)
8076819 HASH JOIN (cr=1591993 pr=82513 pw=128338 time=97917982 us)
1611192 HASH JOIN (cr=1591176 pr=80224 pw=78099 time=57413444 us)
1611192 HASH JOIN (cr=1590457 pr=28794 pw=27384 time=20659952 us)
793008 HASH JOIN (cr=1589595 pr=1843 pw=1267 time=12259546 us)
276 TABLE ACCESS FULL DEPS (cr=5 pr=0 pw=0 time=383 us)
793008 NESTED LOOPS (cr=1589590 pr=1843 pw=1267 time=10672032 us)
793008 HASH JOIN (cr=3572 pr=1815 pw=1267 time=2741847 us)
43362 HASH JOIN (cr=3426 pr=493 pw=0 time=379252 us)
985 TABLE ACCESS FULL TSL_RPM_PROMO_MULTI_BUY_ZONE (cr=5 pr=4 pw=0 time=207 us)
43362 HASH JOIN (cr=3421 pr=489 pw=0 time=288896 us)
388 HASH JOIN (cr=2934 pr=5 pw=0 time=22834 us)
1624 TABLE ACCESS FULL TSL_RPM_PROMO_COMP_M_B_DTL (cr=9 pr=0 pw=0 time=34 us)
194 HASH JOIN (cr=2925 pr=5 pw=0 time=30088 us)
795 TABLE ACCESS FULL TSL_RPM_PROMO_COMP_M_B (cr=4 pr=2 pw=0 time=179 us)
45903 HASH JOIN (cr=2921 pr=3 pw=0 time=109197 us)
236 HASH JOIN (cr=444 pr=3 pw=0 time=16642 us)
373 NESTED LOOPS OUTER (cr=413 pr=0 pw=0 time=7419 us)
373 HASH JOIN (cr=40 pr=0 pw=0 time=2166 us)
277 TABLE ACCESS FULL RPM_PROMO_EVENT (cr=6 pr=0 pw=0 time=48 us)
373 TABLE ACCESS FULL RPM_PROMO (cr=34 pr=0 pw=0 time=414 us)
0 VIEW PUSHED PREDICATE (cr=373 pr=0 pw=0 time=4519 us)
0 NESTED LOOPS (cr=373 pr=0 pw=0 time=4033 us)
0 NESTED LOOPS (cr=373 pr=0 pw=0 time=3611 us)
0 TABLE ACCESS BY INDEX ROWID DEAL_COMP_PROM (cr=373 pr=0 pw=0 time=3166 us)
0 INDEX SKIP SCAN PK_DEAL_COMP_PROM (cr=373 pr=0 pw=0 time=2559 us)(object id 460586)
0 TABLE ACCESS BY INDEX ROWID DEAL_HEAD (cr=0 pr=0 pw=0 time=0 us)
0 INDEX UNIQUE SCAN PK_DEAL_HEAD (cr=0 pr=0 pw=0 time=0 us)(object id 460002)
0 INDEX RANGE SCAN ITEM_SUPPLIER_I1 (cr=0 pr=0 pw=0 time=0 us)(object id 461281)
1452 TABLE ACCESS FULL RPM_PROMO_COMP (cr=31 pr=3 pw=0 time=38 us)
190227 TABLE ACCESS FULL RPM_PROMO_COMP_DETAIL (cr=2477 pr=0 pw=0 time=36 us)
69561 TABLE ACCESS FULL TSL_RPM_PROMO_MB_ATTR (cr=487 pr=484 pw=0 time=361 us)
25271 TABLE ACCESS FULL TSL_RPM_PROMO_GET_ITEM (cr=146 pr=55 pw=0 time=53 us)
793008 TABLE ACCESS BY INDEX ROWID ITEM_MASTER (cr=1586018 pr=28 pw=0 time=7006432 us)
793008 INDEX UNIQUE SCAN PK_ITEM_MASTER (cr=793010 pr=19 pw=0 time=3817845 us)(object id 460014)
211165 INDEX FAST FULL SCAN PK_ITEM_SUPPLIER (cr=862 pr=834 pw=0 time=341 us)(object id 461283)
378625 TABLE ACCESS FULL RPM_PROMO_DEPT (cr=719 pr=715 pw=0 time=333 us)
132392 TABLE ACCESS FULL TSL_RPM_PROMO_COMP_TPND (cr=817 pr=0 pw=0 time=80 us)
Elapsed times include waiting on following events:
Event waited on Times Max. Wait Total Waited
---------------------------------------- Waited ---------- ------------
SQL*Net message to client 5 0.00 0.00
db file sequential read 627 0.51 1.69
db file scattered read 699 0.08 0.68
SQL*Net more data to client 1 0.00 0.00
SQL*Net message from client 4 50.64 149.95
direct path write temp 56227 0.32 219.45
direct path read temp 11746 0.01 0.69
control file sequential read 7 0.00 0.00
SQL*Net break/reset to client 2 0.00 0.00
SQL ID:
Plan Hash: 1248216388
SELECT NAME NAME_COL_PLUS_SHOW_PARAM,DECODE(TYPE,1,'boolean',2,'string',3,
'integer',4,'file',5,'number', 6,'big integer', 'unknown') TYPE,
DISPLAY_VALUE VALUE_COL_PLUS_SHOW_PARAM
FROM
V$PARAMETER WHERE UPPER(NAME) LIKE UPPER('%USER_DUMP_DEST%') ORDER BY
NAME_COL_PLUS_SHOW_PARAM,ROWNUM
call count cpu elapsed disk query current rows
Parse 1 0.00 0.00 0 0 0 0
Execute 1 0.00 0.00 0 0 0 0
Fetch 2 0.01 0.01 0 0 0 1
total 4 0.01 0.02 0 0 0 1
Misses in library cache during parse: 1
Optimizer mode: CHOOSE
Parsing user id: 191
Rows Row Source Operation
1 SORT ORDER BY (cr=0 pr=0 pw=0 time=15029 us)
1 COUNT (cr=0 pr=0 pw=0 time=15015 us)
1 MERGE JOIN (cr=0 pr=0 pw=0 time=15004 us)
1495 FIXED TABLE FULL X$KSPPCV (cr=0 pr=0 pw=0 time=3021 us)
1 FILTER (cr=0 pr=0 pw=0 time=10994 us)
1 SORT JOIN (cr=0 pr=0 pw=0 time=9469 us)
1 FIXED TABLE FULL X$KSPPI (cr=0 pr=0 pw=0 time=7735 us)
Elapsed times include waiting on following events:
Event waited on Times Max. Wait Total Waited
---------------------------------------- Waited ---------- ------------
SQL*Net message to client 2 0.00 0.00
SQL*Net message from client 2 2763.24 2763.24
SQL ID:
Plan Hash: 643305917
SELECT 'Y'
FROM
SEC_USER_GROUP SUG WHERE SUG.USER_ID = SYS_CONTEXT('USERENV', 'SESSION_USER')
AND EXISTS(SELECT 'x' FROM FILTER_GROUP_MERCH FGM WHERE FGM.SEC_GROUP_ID =
SUG.GROUP_ID AND ROWNUM = 1) AND ROWNUM = 1
call count cpu elapsed disk query current rows
Parse 1 0.01 0.00 0 0 0 0
Execute 1 0.00 0.00 0 0 0 0
Fetch 1 0.00 0.01 1 3 0 0
total 3 0.01 0.02 1 3 0 0
Misses in library cache during parse: 1
Optimizer mode: CHOOSE
Parsing user id: 191 (recursive depth: 2)
Rows Row Source Operation
0 COUNT STOPKEY (cr=3 pr=1 pw=0 time=12073 us)
0 INDEX FULL SCAN PK_SEC_USER_GROUP (cr=3 pr=1 pw=0 time=12070 us)(object id 460226)
0 COUNT STOPKEY (cr=2 pr=1 pw=0 time=12026 us)
0 INDEX RANGE SCAN UK_FILTER_GROUP_MERCH (cr=2 pr=1 pw=0 time=12023 us)(object id 461052)
Elapsed times include waiting on following events:
Event waited on Times Max. Wait Total Waited
---------------------------------------- Waited ---------- ------------
db file sequential read 1 0.01 0.01
SQL ID:
Plan Hash: 643277548
SELECT 'Y'
FROM
SEC_USER_GROUP SUG WHERE SUG.USER_ID = SYS_CONTEXT('USERENV', 'SESSION_USER')
AND (EXISTS(SELECT 'x' FROM FILTER_GROUP_ORG FGO WHERE FGO.SEC_GROUP_ID =
SUG.GROUP_ID AND ROWNUM = 1) OR EXISTS(SELECT 'x' FROM SEC_GROUP_LOC_MATRIX
SGLM WHERE SGLM.GROUP_ID = SUG.GROUP_ID AND ROWNUM = 1)) AND ROWNUM = 1
call count cpu elapsed disk query current rows
Parse 1 0.01 0.01 0 0 0 0
Execute 1 0.00 0.00 0 0 0 0
Fetch 1 0.02 0.00 2 3 0 0
total 3 0.03 0.02 2 3 0 0
Misses in library cache during parse: 1
Optimizer mode: CHOOSE
Parsing user id: 191 (recursive depth: 2)
Rows Row Source Operation
0 COUNT STOPKEY (cr=3 pr=2 pw=0 time=8617 us)
0 FILTER (cr=3 pr=2 pw=0 time=8614 us)
1 INDEX FULL SCAN PK_SEC_USER_GROUP (cr=1 pr=0 pw=0 time=39 us)(object id 460226)
0 COUNT STOPKEY (cr=1 pr=1 pw=0 time=5403 us)
0 INDEX RANGE SCAN PK_FILTER_GROUP_ORG (cr=1 pr=1 pw=0 time=5400 us)(object id 461061)
0 COUNT STOPKEY (cr=1 pr=1 pw=0 time=3127 us)
0 INDEX SKIP SCAN UK_SEC_GROUP_LOC_MATRIX (cr=1 pr=1 pw=0 time=3125 us)(object id 460888)
Elapsed times include waiting on following events:
Event waited on Times Max. Wait Total Waited
---------------------------------------- Waited ---------- ------------
db file sequential read 2 0.00 0.00
SQL ID:
Plan Hash: 4011473558
SELECT NAME NAME_COL_PLUS_SHOW_PARAM,DECODE(TYPE,1,'boolean',2,'string',3,
'integer',4,'file',5,'number', 6,'big integer', 'unknown') TYPE,
DISPLAY_VALUE VALUE_COL_PLUS_SHOW_PARAM
FROM
V$PARAMETER WHERE UPPER(NAME) LIKE UPPER('%USER_DUMP_DEST%') ORDER BY
NAME_COL_PLUS_SHOW_PARAM,ROWNUM
call count cpu elapsed disk query current rows
Parse 1 0.00 0.00 0 0 0 0
Execute 1 0.00 0.00 0 0 0 0
Fetch 2 0.01 0.01 0 0 0 1
total 4 0.01 0.01 0 0 0 1
Misses in library cache during parse: 0
Optimizer mode: CHOOSE
Parsing user id: 191
Rows Row Source Operation
1 SORT ORDER BY (cr=0 pr=0 pw=0 time=15250 us)
1 COUNT (cr=0 pr=0 pw=0 time=15226 us)
1 MERGE JOIN (cr=0 pr=0 pw=0 time=15207 us)
1495 FIXED TABLE FULL X$KSPPCV (cr=0 pr=0 pw=0 time=3166 us)
1 FILTER (cr=0 pr=0 pw=0 time=11059 us)
1 SORT JOIN (cr=0 pr=0 pw=0 time=9512 us)
1 FIXED TABLE FULL X$KSPPI (cr=0 pr=0 pw=0 time=7741 us)
Elapsed times include waiting on following events:
Event waited on Times Max. Wait Total Waited
---------------------------------------- Waited ---------- ------------
SQL*Net message to client 2 0.00 0.00
SQL*Net message from client 2 3143.23 3143.23
SQL ID:
Plan Hash: 643140929
SELECT 'Y'
FROM
SEC_USER_GROUP SUG WHERE SUG.USER_ID = SYS_CONTEXT('USERENV', 'SESSION_USER')
AND ROWNUM = 1
call count cpu elapsed disk query current rows
Parse 1 0.00 0.00 0 0 0 0
Execute 1 0.00 0.00 0 0 0 0
Fetch 1 0.00 0.00 1 1 0 1
total 3 0.00 0.01 1 1 0 1
Misses in library cache during parse: 1
Optimizer mode: CHOOSE
Parsing user id: 191 (recursive depth: 2)
Rows Row Source Operation
1 COUNT STOPKEY (cr=1 pr=1 pw=0 time=6617 us)
1 INDEX RANGE SCAN SEC_USER_GROUP_I1 (cr=1 pr=1 pw=0 time=6614 us)(object id 460225)
Elapsed times include waiting on following events:
Event waited on Times Max. Wait Total Waited
---------------------------------------- Waited ---------- ------------
db file sequential read 1 0.00 0.00
SQL ID:
Plan Hash: 642786159
SELECT DATA_LEVEL_SECURITY_IND, DIFF_GROUP_ORG_LEVEL_CODE,
LOC_LIST_ORG_LEVEL_CODE, LOC_TRAIT_ORG_LEVEL_CODE, SEASON_ORG_LEVEL_CODE,
SKULIST_ORG_LEVEL_CODE, TICKET_TYPE_ORG_LEVEL_CODE, UDA_ORG_LEVEL_CODE,
DIFF_GROUP_MERCH_LEVEL_CODE, SEASON_MERCH_LEVEL_CODE,
TICKET_TYPE_MERCH_LEVEL_CODE, UDA_MERCH_LEVEL_CODE, TSL_LOC_SEC_IND
FROM
SYSTEM_OPTIONS
call count cpu elapsed disk query current rows
Parse 1 0.01 0.00 0 0 0 0
Execute 1 0.00 0.00 0 0 0 0
Fetch 1 0.00 0.00 1 4 0 1
total 3 0.01 0.01 1 4 0 1
Misses in library cache during parse: 1
Optimizer mode: CHOOSE
Parsing user id: 191 (recursive depth: 2)
Rows Row Source Operation
1 TABLE ACCESS FULL SYSTEM_OPTIONS (cr=4 pr=1 pw=0 time=6518 us)
Elapsed times include waiting on following events:
Event waited on Times Max. Wait Total Waited
---------------------------------------- Waited ---------- ------------
db file sequential read 1 0.00 0.00
SQL ID:
Plan Hash: 643306006
begin :con := FILTER_POLICY_SQL.V_ITEM_MASTER_S(:sn, :on); end;
call count cpu elapsed disk query current rows
Parse 1 0.00 0.00 0 0 0 0
Execute 1 0.00 0.00 0 0 0 1
Fetch 0 0.00 0.00 0 0 0 0
total 2 0.00 0.00 0 0 0 1
Misses in library cache during parse: 0
Optimizer mode: CHOOSE
Parsing user id: 191 (recursive depth: 1)
SQL ID:
Plan Hash: 647750573
begin :con := FILTER_POLICY_SQL.V_ITEM_MASTER_S(:sn, :on); end;
call count cpu elapsed disk query current rows
Parse 1 0.00 0.00 0 0 0 0
Execute 1 0.00 0.00 0 0 0 1
Fetch 0 0.00 0.00 0 0 0 0
total 2 0.00 0.00 0 0 0 1
Misses in library cache during parse: 0
Optimizer mode: CHOOSE
Parsing user id: 191 (recursive depth: 1)
OVERALL TOTALS FOR ALL NON-RECURSIVE STATEMENTS
call count cpu elapsed disk query current rows
Parse 3 4.16 4.49 0 0 0 0
Execute 3 0.00 0.00 0 0 0 0
Fetch 9 53.03 276.32 91547 1615664 9 50
total 15 57.19 280.82 91547 1615664 9 50
Misses in library cache during parse: 2
Elapsed times include waiting on following events:
Event waited on Times Max. Wait Total Waited
---------------------------------------- Waited ---------- ------------
SQL*Net message to client 10 0.00 0.00
SQL*Net message from client 9 3143.23 6091.69
SQL*Net more data from client 8 0.00 0.00
db file sequential read 627 0.51 1.69
db file scattered read 699 0.08 0.68
SQL*Net more data to client 1 0.00 0.00
direct path write temp 56227 0.32 219.45
direct path read temp 11746 0.01 0.69
control file sequential read 7 0.00 0.00
SQL*Net break/reset to client 2 0.00 0.00
OVERALL TOTALS FOR ALL RECURSIVE STATEMENTS
call count cpu elapsed disk query current rows
Parse 93 0.08 0.07 0 0 0 0
Execute 579 0.12 0.14 0 0 0 2
Fetch 930 0.06 0.51 63 2154 0 3254
total 1602 0.26 0.73 63 2154 0 3256
Misses in library cache during parse: 25
Misses in library cache during execute: 21
Elapsed times include waiting on following events:
Event waited on Times Max. Wait Total Waited
---------------------------------------- Waited ---------- ------------
db file sequential read 63 0.14 0.47
9 user SQL statements in session.
573 internal SQL statements in session.
582 SQL statements in session.
0 statements EXPLAINed in this session.
Trace file: hsctst09_ora_1671386_10046.trc
Trace file compatibility: 11.1.0.7
Sort options: prsela fchela exeela
1 session in tracefile.
9 user SQL statements in trace file.
573 internal SQL statements in trace file.
582 SQL statements in trace file.
36 unique SQL statements in trace file.
81769 lines in trace file.
17819535 elapsed seconds in trace file.Thanks in advance. -
Tkprof not showing the Execution Plan for Statement
Hi all
using oracle 9i release 2
I have issued the following statements
alter session set sql_trace
alter session set events '10046 trace name context forever, level 12';
--then executed a pl-sql procedure
after reading the traceout outfile it shows the Execution plan for statements directly wirtten under begin and end block and doesnot displays the plan for the statements written like this
procedure a is
cursor b is
select ename,dname from dept a,emp b
where a.deptno=b.deptno;
begin
for x in a loop --plan not found but stats are written
select ename into v_ename from emp where empno=300; --does show the plan+stats
end;
what I am missing to get the actual plan in trace output file
thanks in advanceYou have to exit sql*plus after running the procedure, example tkprof is below:
declare
cursor c is
select ename, dname
from emp, dept
where emp.deptno = dept.deptno;
begin
for v_x in c
loop
dbms_output.put_line(v_x.ename || ' ' ||v_x.dname);
end loop;
end;
call count cpu elapsed disk query current rows
Parse 1 0.00 0.00 0 0 0 0
Execute 1 0.00 0.06 0 0 0 1
Fetch 0 0.00 0.00 0 0 0 0
total 2 0.00 0.06 0 0 0 1
Misses in library cache during parse: 0
Optimizer goal: CHOOSE
Parsing user id: 68
Elapsed times include waiting on following events:
Event waited on Times Max. Wait Total Waited
---------------------------------------- Waited ---------- ------------
SQL*Net message to client 1 0.00 0.00
SQL*Net message from client 1 0.00 0.00
SELECT ENAME, DNAME
FROM
EMP, DEPT WHERE EMP.DEPTNO = DEPT.DEPTNO
call count cpu elapsed disk query current rows
Parse 1 0.00 0.00 0 0 0 0
Execute 1 0.00 0.00 0 0 0 0
Fetch 15 0.01 0.00 0 44 0 14
total 17 0.01 0.00 0 44 0 14
Misses in library cache during parse: 0
Optimizer goal: CHOOSE
Parsing user id: 68 (recursive depth: 1)
Rows Row Source Operation
14 NESTED LOOPS
14 TABLE ACCESS FULL EMP
14 TABLE ACCESS BY INDEX ROWID DEPT
14 INDEX UNIQUE SCAN DEPT_PK (object id 40350)
Best Regards
Krystian Zieja / mob -
Ellapsed time too much in tkprof output
Hi All,
I don't know exactly how to interprete Tkprof output file but i have a problem of performance inserting data to my one table, it takes around 1min but before it was 10 secs. i trace the program and analyze the output from tkprof and i get the following portion:
insert /*+ APPEND +*/ into T_NAME(COL1, COL2, COL3, .....)
values
(:s1 ,:s2 ,:s3 ,:s4 ,:s5 ,:s6 ,:s7 ,:s8 ,:s9 ,:s10 ,:s11 ,:s12 ,:s13 ,:s14 ,
:s15 ,:s16 ,:s17 ,:s18 ,:s19 ,:s20 ,:s21 ,:s22 ,:s23 ,:s24 ,:s25 ,:s26 ,
:s27 ,:s28 ,:s29 ,:s30 ,:s31 ,:s32 ,:s33 ,:s34 ,:s35 ,:s36 ,:s37 ,:s38 ,
:s39 ,:s40 ,:s41 ,:s42 ,:s43 ,:s44 ,:s45 ,:s46 ,:s47 ,:s48 ,:s49 ,:s50 ,
:s51 ,:s52 ,:s53 ,:s54 ,:s55 ,:s56 ,:s57 ,:s58 ,:s59 ,:s60 ,:s61 ,:s62 ,
:s63 ,:s64 ,:s65 ,:s66 ,:s67 ,:s68 )
call count cpu elapsed disk query current rows
Parse 2 0.00 0.00 0 0 0 0
Execute 3 2.94 292.24 12144 1501 57125 4728
Fetch 0 0.00 0.00 0 0 0 0
total 5 2.94 292.24 12144 1501 57125 4728
Misses in library cache during parse: 2
Misses in library cache during execute: 3
Optimizer mode: ALL_ROWS
Parsing user id: 103 (USERNAME)
Rows Execution Plan
0 INSERT STATEMENT MODE: ALL_ROWS
When interpreting this, i got huge value on Ellapsed, disk column during execution:
The command was exectued 3 times and it was taking 292 secs means 97 secs per execution. I thought it was making my insert problem slow.
So if i'm not wrong how to avaoid this insertion problem, how to reduce this time of ellapsed.
What is the problem causing table insertion slow.
Please help because it is affecting our business
Thanks for your help
Raitsarevoraitsarevo wrote:
Hi,
Gathering statistics will affect performance or not. I mean when i gather statistics of my table now, will this affect operation in this table during execution, the table will be locked or not, indexes will be also or not. Can users work in the table during stat gathering.
Can anybody give me script to gather stats for partitionned table please.
Gathering statistics is a good idea in general but it's very unlikely that will help in your particular case. The data needs to be inserted into the table and indexes need to be maintained, this in independent from any statistics. Still it's a good idea in general to refresh statistics if e.g. bulk inserts increased the size and number of rows significantly.
Have you followed up the advices already given so far regarding further checks and running your statement with tracing enabled at a higher level?
You can enable this using the following instead of using sql_trace = true:
ALTER SESSION SET EVENTS '10046 trace name context forever, level 8';and switch it off like that:
ALTER SESSION SET EVENTS '10046 trace name context off';For more information regarding this, e.g. enabling trace in another session, see e.g. here:
http://www.juliandyke.com/Diagnostics/Trace/EnablingTrace.html
raitsarevo wrote:
Hi guys,
Reading an output fromENterprise manager, i found that this insert statement is consuming to much "db file sequential read ". I know that is causing wait event. So my question is how to reduce this consumption.
Thanks
Raitsarevo.That's very likely caused by the required index maintenance and there is not much you can do about it apart from dropping the indexes. As already mentioned by Jonathan you might hits bugs of the ASSM space management, therefore it would also be good to know if the tablespace the object resides in uses ASSM or not (check the columns EXTENT_MANAGEMENT, ALLOCATION_TYPE, SEGMENT_SPACE_MANAGEMENT of DBA_TABLESPACES).
Try to generate the extended trace as advised and post the tkprof output here.
Regards,
Randolf
Oracle related stuff blog:
http://oracle-randolf.blogspot.com/
SQLTools++ for Oracle (Open source Oracle GUI for Windows):
http://www.sqltools-plusplus.org:7676/
http://sourceforge.net/projects/sqlt-pp/ -
Abnormal high "query" count in customer tkprof output
We have a performance problem with one of our customer.
A query is made on a 12K rows table, and there is no full scan, the index is used.
If we run the query on our test database, which is identical, and examine the tkprof output, things appears normal:
Fetch=80, cpu=0.0, disk=0, query=15738,rows=782
But the same query, on and identical table, same index at our customer:
Fetch=831, cpu=4.75, disk=141, query=550564, rows=830
I dont unerstand what is the "query" parameter, the number of cache buffers read in memory ?
It is unbeleivebly high, further more, hard to understand high number of rows in the execution plan:
Ours
1570 TABLE ACCESS BY INDEX ROWID MY_SECRET_TABLE_NAME
1570 INDEX RANGE SCAN MY_PRIMARY_KEY_INDEX
Customers:
88413 TABLE ACCESS BY INDEX ROWID MY_SECRET_TABLE_NAME
92917 INDEX RANGE SCAN MY_PRIMARY_KEY_INDEX
We dont understand such high numbers. On theory, from our former DBA, was that our indexes where not create properly. A unique key index was create, then a primary constraint with the same name, was added to the table. Apparently we should have created only the constraint, and not the second index.
Any help appreciated.Hi Guy,
Query = db block gets + consistent gets.
Consistent gets are the block reads you need to reconstruct a read-consistent image of the data.
If you can't fetch all records at a time, you will get multiple fetches. At each fetch Oracle will issue consistent gets, as it needs to provide to you the data in the state when you started the query.
Looking at your statistics, it is quite clear what happened.
Fetch=80, cpu=0.0, disk=0, query=15738,rows=782
782 rows in 80 fetches. Roughly 10 rows per fetch.
But the same query, on an identical table, same index at our customer:
Fetch=831, cpu=4.75, disk=141, query=550564, rows=830
830 rows in 830 fetches (the last fetch is to check there is no more data), which means 1 row per fetch.
In both cases: consistent gets at every fetch.
Somehow your client has made sure, by means of a setting, he will fetch only 1 row at a time. And that is killing him.
Nothing wrong with any index.
Hth
Sybrand Bakker
Senior Oracle DBA -
What does the row source generator does ?
Hi,
I am looking for a small sort of defination of row source generator. actually i have gone through the defintaion,and bit confused.please follow your defination with an example which could give me better see .i am confused in these line
"it outputs the execution plan for the sql statements" and " the row source generator is collection of row sources structred in the form of tree".
thanks
Alok.The source of these words is a the Oracle documentation.
The row source generator is a translator: it converts the optimal execution plan into a concrete set of instructions for the SQL engine. That, at least, is my understanding.
Perhaps it might help to think of it as an exercise in navigation. The optimal plan for getting from A to B is to go via D and F. But what you tell the driver is, "go 2 miles down A-road, take third turning on left, go straight ahead at the D crossroads, take the first road on the right, then it's the third exit off the F roundabout and B is the lefthand road at the next t-junction". Of course, the problem witrh analogies is that they can confuse the issue rather than illuminate it.
So my advice is, don't sweat the details. Approach the optimizer as a black box and get a feel for what it does by playing with queries. Then re-read the architectural definition and see if it makes more sense.
Cheers, APC -
Hello friends,
I have a 'select' within a loop while...
Viewing the file generated by tkprof, has the information below:
call count cpu elapsed disk query current rows
Parse 1 0.01 0.00 0 0 0 0
Execute 109 2.12 7.24 284 7586 111205 21582
Fetch 0 0.00 0.00 0 0 0 0
total 110 2.13 7.25 284 7586 111205 21582
The field 'count' tells me that she will be parsed 1 time and executed 109 times?
Although it is considered 1 time, is difference in performance if it were played only 1 time?
And what I see fields to improve performance?If it was executed only 1 time, it would be faster, sure, but is that what you want?
Does your tkprof output has more information? I cant see any information to help improve performance.
Try put here some AUTOTRACE info too.
Edited by: user10146205 on 18/09/2008 14:38 -
Need SQL statement to generate a sequence number in the output rows
Hi folks. I need to create an SQL statement that generates a sequence number column in the output rows (records) such that the first returned row has this column set to 1, second returned row has the column set to 2, etc.
For example, consider the query:
SELECT income from employees WHERE income != 20000 ORDER BY income;
If employees.income contains 60,000, 20,000, 35,000, and 19,000 for respective rows, the output would be this:
19,000
35,000
60,000
I would like the SQL to also return a sequence number that is computed across the returned rows, resulting in two output columns:
1 19,000
2 35,000
3 60,000
Is there a simple SQL function that generates the sequence number, in order, and only for the returned rows? Or is there another way?
I'm stumped. Any help is appreciated! Thanks!
- Jack CochraneHi,
Welcome to the forum!
Use ROWNUM, like (example):
Connected to Oracle Database 10g Express Edition Release 10.2.0.1.0
Connected as hr
SQL> select rownum, first_name from (select e.first_name from employees e where e.first_name like 'J%' order by e.first_name);
ROWNUM FIRST_NAME
1 Jack
2 James
3 James
4 Janette
5 Jason
6 Jean
7 Jennifer
8 Jennifer
9 John
10 John
11 John
12 Jonathon
13 Jose Manuel
14 Joshua
15 Julia
16 Julia
16 rows selected
SQL> But rememeber if you want to be sure of unique numbers in certain field is better to use sequences and use seq_name.nextval each time you need.
Regards,
Maybe you are looking for
-
I am trying to add an existing Outlook account to use via iCloud on my computer. I get a message that there is no profile set up and the exchange server is not available. I am not an electronics whiz, (if you haven't guessed that already). I would
-
Concatenate with tab delimiter
Hi, I need to put 3 fields in a Unix text file separating them with a tab delimiter.I know How to send it to unix but anyone tell me how I write the concatenate . I have another issue ...when I bring it back from unix to r/3...then how should I check
-
Firefox keeps freezing in office, but not in other public/home network
Firefox keeps freezing starting from yesterday in my office wireless network. When it is opened, the browser screen does not show up, I have to right click on the icon in order to have the screen brought up. Search bar and tab functions respond real
-
My granddaughter disabled her ipod and i never synced it with my computer. Apple has gone thru the process with me, but each time when i tune is just about fnished it fails to download i tune. can anyone help or offer suggestions.
-
My iphone 3 is stuck in recovery mode it says erroe code 3194 when I try to restore
My 1phone 3gs is stuck in reovery mode and when I try to restore it, it says cannot restore error 3194