Want to modify procedure to reduce execution time.
Hi,
I am using oracle 10g.I had written a procedure which returns me list of telephone nos selected based on selection criteria.My procedure is working but its taking time.I am using a query which returns me list of rows.The count of row is very much.so each time it execute the query in loop, and it takes time.I want to use cursor so that at one time it will be executed and those records will be checked instead of executing the query everytime....
The query which is used is :
select * from abc;
Please take this in cursor if possible...i had used it in my procedure below in for loop....I will be thankful to you in this regard.
The procedure is below:
create or replace PROCEDURE "OM_GET_SELECTED_TEL" (
ni_array IN ty_npa_id,
reqquantity IN NUMBER,
availableinvids OUT ty_tel_no
AS
begin
declare
available ty_tel_no:= ty_tel_no();
output VARCHAR2 (400);
k number(3):= 1;
BEGIN
DBMS_OUTPUT.put_line ('tnType IS G');
FOR i IN 1 .. ni_array.COUNT
LOOP
FOR j IN
(SELECT tel_no,
CASE
WHEN REGEXP_LIKE (tel_no, '(\d)\1\1\1$')
THEN 'condition 1 fullfilled'
WHEN REGEXP_LIKE (tel_no, '(\d)\1(\d)\2$')
THEN 'condition 2 fullfilled'
WHEN REGEXP_LIKE (tel_no,
'\d(\d)\1\1$|(\d)\2\2\d$'
THEN 'condition 3 fullfilled'
ELSE 'condition 4 fullfilled'
END condition
FROM (select * from abc) order by condition)
LOOP
output := j.condition;
available.extend();
IF (output = 'condition 1 fullfilled')
THEN
available(k) := j.tel_no;
k := k+1;
--availableinvids (i) := j.tel_no;
DBMS_OUTPUT.put_line ('selected nos which satisfy condition 1:' || j.tel_no);
ELSIF (output = 'condition 2 fullfilled')
THEN
available(k) := j.tel_no;
k := k+1;
--availableinvids (i) := j.tel_no;
DBMS_OUTPUT.put_line ('selected nos which satisfy condition 2:' || j.tel_no);
ELSIF (output = 'condition 3 fullfilled')
THEN
available(k) := j.tel_no;
k := k+1;
--availableinvids (i) := j.tel_no;
DBMS_OUTPUT.put_line ('selected nos which satisfy condition 3:' || j.tel_no);
ELSE
available(k) := j.tel_no;
k := k+1;
DBMS_OUTPUT.put_line ('selected nos which dont satisfy condition :' || j.tel_no);
END IF;
EXIT WHEN k = reqquantity + 1 ;
END LOOP;
EXIT WHEN k = reqquantity + 1 ;
END LOOP;
end;
END;
kordirko thanks for your reply...but i didnt got your point.I need a stored procedure not a function also i had two cases and my query (select * from abc ) is a big query i had just written a sample query...it returns me a lot of tel nos. based on conditions in query....I am writing my complete procedure below.Please if possible give a alternate solution to reduce the time of query...if u want u may use cursor also...a function is also ok, if it returns what my procedure returns.U may see the query in both cases are same. So better take the query out of it....so that it may execute 1 time only, not mulitple times....Also ni_array is array which is passed to procedure.reqquantity is number of tel nos wanted in output...tntype is either S or G....and availableinvids gives me the ouput.....I will be thankful to you in this regard.
My full procedure is below:
create or replace PROCEDURE "OM_GET_SELECTED_TEL" (
ni_array IN ty_npa_id,
reqquantity IN NUMBER,
tntype IN VARCHAR2,
availableinvids OUT ty_tel_no
AS
begin
declare
available ty_tel_no:= ty_tel_no();
output VARCHAR2 (400);
k number(3):= 1;
BEGIN
IF tntype = 'G'
THEN
DBMS_OUTPUT.put_line ('tnType IS G');
FOR i IN 1 .. ni_array.COUNT
LOOP
FOR j IN
(SELECT tel_no,
CASE
WHEN REGEXP_LIKE (tel_no, '(\d)\1\1\1$')
THEN 'condition 1 fullfilled'
WHEN REGEXP_LIKE (tel_no, '(\d)\1(\d)\2$')
THEN 'condition 2 fullfilled'
WHEN REGEXP_LIKE (tel_no,
'\d(\d)\1\1$|(\d)\2\2\d$'
THEN 'condition 3 fullfilled'
ELSE 'condition 4 fullfilled'
END condition
FROM (select * from abc) order by condition)
LOOP
output := j.condition;
available.extend();
IF (output = 'condition 1 fullfilled')
THEN
available(k) := j.tel_no;
k := k+1;
--availableinvids (i) := j.tel_no;
DBMS_OUTPUT.put_line ('selected nos which satisfy condition 1:' || j.tel_no);
ELSIF (output = 'condition 2 fullfilled')
THEN
available(k) := j.tel_no;
k := k+1;
--availableinvids (i) := j.tel_no;
DBMS_OUTPUT.put_line ('selected nos which satisfy condition 2:' || j.tel_no);
ELSIF (output = 'condition 3 fullfilled')
THEN
available(k) := j.tel_no;
k := k+1;
--availableinvids (i) := j.tel_no;
DBMS_OUTPUT.put_line ('selected nos which satisfy condition 3:' || j.tel_no);
ELSE
available(k) := j.tel_no;
k := k+1;
DBMS_OUTPUT.put_line ('selected nos which dont satisfy condition :' || j.tel_no);
END IF;
EXIT WHEN k = reqquantity + 1 ;
END LOOP;
EXIT WHEN k = reqquantity + 1 ;
END LOOP;
ELSIF tntype = 'S'
THEN
DBMS_OUTPUT.put_line ('tnType IS S');
FOR i IN 1 .. ni_array.COUNT
LOOP
FOR j IN
WITH got_grp_id AS
SELECT tel_no
, REGEXP_REPLACE ( tel_no
, '-\d+$'
) AS nos_part_1
, TO_NUMBER ( REGEXP_SUBSTR ( tel_no
, '\d+$'
) - ROW_NUMBER () OVER ( PARTITION BY REGEXP_REPLACE ( tel_no
, '-\d+$'
ORDER BY tel_no
) AS grp_id
FROM (select * from abc
, got_grp_cnt AS
SELECT got_grp_id.*
, COUNT (1) OVER ( PARTITION BY nos_part_1
, grp_id
) AS grp_cnt
FROM got_grp_id
ORDER BY grp_cnt DESC
, tel_no
SELECT tel_no
FROM got_grp_cnt
WHERE ROWNUM <= reqquantity
LOOP
output := j.tel_no;
DBMS_OUTPUT.put_line ('reqquantity:'||reqquantity) ;
available.extend();
available(k) := output;
k := k+1;
DBMS_OUTPUT.put_line ('selected nos for S type are:' || j.tel_no) ;
END LOOP;
END LOOP;
ELSE
DBMS_OUTPUT.put_line ('WRONG TNTYPE');
END IF;
end;
END;
Similar Messages
-
How to reduce execution time ?
Hi friends...
I have created a report to display vendor opening balances,
total debit ,total credit , total balance & closing balance for the given date range. it is working fine .But it takes more time to execute . How can I reduce execution time ?
Plz help me. It's a very urgent report...
The coding is as below.....
report yfiin_rep_vendordetail no standard page heading.
tables : bsik,bsak,lfb1,lfa1.
type-pools : slis .
--TABLE STRUCTURE--
types : begin of tt_bsik,
bukrs type bukrs,
lifnr type lifnr,
budat type budat,
augdt type augdt,
dmbtr type dmbtr,
wrbtr type wrbtr,
shkzg type shkzg,
hkont type hkont,
bstat type bstat_d ,
prctr type prctr,
name1 type name1,
end of tt_bsik,
begin of tt_lfb1,
lifnr type lifnr,
mindk type mindk,
end of tt_lfb1,
begin of tt_lfa1,
lifnr type lifnr,
name1 type name1,
ktokk type ktokk,
end of tt_lfa1,
begin of tt_opbal,
bukrs type bukrs,
lifnr type lifnr,
gjahr type gjahr,
belnr type belnr_d,
budat type budat,
bldat type bldat,
waers type waers,
dmbtr type dmbtr,
wrbtr type wrbtr,
shkzg type shkzg,
blart type blart,
monat type monat,
hkont type hkont,
bstat type bstat_d ,
prctr type prctr,
name1 type name1,
tdr type dmbtr,
tcr type dmbtr,
tbal type dmbtr,
end of tt_opbal,
begin of tt_bs ,
bukrs type bukrs,
lifnr type lifnr,
name1 type name1,
prctr type prctr,
tbal type dmbtr,
bala type dmbtr,
balb type dmbtr,
balc type dmbtr,
bald type dmbtr,
bale type dmbtr,
gbal type dmbtr,
end of tt_bs.
************WORK AREA DECLARATION *********************
data : gs_bsik type tt_bsik,
gs_bsak type tt_bsik,
gs_lfb1 type tt_lfb1,
gs_lfa1 type tt_lfa1,
gs_ageing type tt_ageing,
gs_bs type tt_bs,
gs_opdisp type tt_bs,
gs_final type tt_bsik,
gs_opbal type tt_opbal,
gs_opfinal type tt_opbal.
************INTERNAL TABLE DECLARATION*************
data : gt_bsik type standard table of tt_bsik,
gt_bsak type standard table of tt_bsik,
gt_lfb1 type standard table of tt_lfb1,
gt_lfa1 type standard table of tt_lfa1,
gt_ageing type standard table of tt_ageing,
gt_bs type standard table of tt_bs,
gt_opdisp type standard table of tt_bs,
gt_final type standard table of tt_bsik,
gt_opbal type standard table of tt_opbal,
gt_opfinal type standard table of tt_opbal.
ALV DECLARATIONS *******************
data : gs_fcat type slis_fieldcat_alv ,
gt_fcat type slis_t_fieldcat_alv ,
gs_sort type slis_sortinfo_alv,
gs_fcats type slis_fieldcat_alv ,
gt_fcats type slis_t_fieldcat_alv.
**********global data declration***************
data : kb type dmbtr ,
return like bapireturn ,
balancespgli like bapi3008-bal_sglind,
noteditems like bapi3008-ntditms_rq,
keybalance type table of bapi3008_3 with header line,
opbalance type p.
SELECTION SCREEN DECLARATIONS *********************
selection-screen begin of block b1 with frame .
select-options : so_bukrs for bsik-bukrs obligatory,
so_lifnr for bsik-lifnr,
so_hkont for bsik-hkont,
so_prctr for bsik-prctr ,
so_mindk for lfb1-mindk,
so_ktokk for lfa1-ktokk.
selection-screen end of block b1.
selection-screen : begin of block b1 with frame.
parameters : p_rb1 radiobutton group rad1 .
select-options : so_date for sy-datum .
selection-screen : end of block b1.
********************************ASSIGNING ALV GRID
****field catalog for balance report
gs_fcats-col_pos = 1.
gs_fcats-fieldname = 'BUKRS'.
gs_fcats-seltext_m = text-001.
append gs_fcats to gt_fcats .
gs_fcats-col_pos = 2 .
gs_fcats-fieldname = 'LIFNR'.
gs_fcats-seltext_m = text-002.
append gs_fcats to gt_fcats .
gs_fcats-col_pos = 3.
gs_fcats-fieldname = 'NAME1'.
gs_fcats-seltext_m = text-003.
append gs_fcats to gt_fcats .
gs_fcats-col_pos = 4.
gs_fcats-fieldname = 'BALC'.
gs_fcats-seltext_m = text-016.
append gs_fcats to gt_fcats .
gs_fcats-col_pos = 5.
gs_fcats-fieldname = 'BALA'.
gs_fcats-seltext_m = text-012.
append gs_fcats to gt_fcats .
gs_fcats-col_pos = 6.
gs_fcats-fieldname = 'BALB'.
gs_fcats-seltext_m = text-013.
append gs_fcats to gt_fcats .
gs_fcats-col_pos = 7.
gs_fcats-fieldname = 'TBAL'.
gs_fcats-seltext_m = text-014.
append gs_fcats to gt_fcats .
gs_fcats-col_pos = 8.
gs_fcats-fieldname = 'GBAL'.
gs_fcats-seltext_m = text-015.
append gs_fcats to gt_fcats .
data : repid1 type sy-repid.
repid1 = sy-repid.
INITIALIZATION EVENTS ******************************
initialization.
*Clearing the work area.
clear gs_bsik.
Refreshing the internal tables.
refresh gt_bsik.
******************START OF SELECTION EVENTS **************************
start-of-selection.
*get data for balance report.
perform sub_openbal.
perform sub_openbal_display.
*& Form sub_openbal
text
--> p1 text
<-- p2 text
form sub_openbal .
if so_date-low > sy-datum or so_date-high > sy-datum .
message i005(yfi02).
leave screen.
endif.
select bukrs lifnr gjahr belnr budat bldat
waers dmbtr wrbtr shkzg blart monat hkont prctr
from bsik into table gt_opbal
where bukrs in so_bukrs and lifnr in so_lifnr
and hkont in so_hkont and prctr in so_prctr
and budat in so_date .
select bukrs lifnr gjahr belnr budat bldat
waers dmbtr wrbtr shkzg blart monat hkont prctr
from bsak appending table gt_opbal
for all entries in gt_opbal
where lifnr = gt_opbal-lifnr
and budat in so_date .
if sy-subrc <> 0.
message i007(yfi02).
leave screen.
endif.
select lifnr mindk from lfb1 into table gt_lfb1
for all entries in gt_opbal
where lifnr = gt_opbal-lifnr and mindk in so_mindk.
select lifnr name1 ktokk from lfa1 into table gt_lfa1
for all entries in gt_opbal
where lifnr = gt_opbal-lifnr and ktokk in so_ktokk.
loop at gt_opbal into gs_opbal .
loop at gt_lfb1 into gs_lfb1 where lifnr = gs_opbal-lifnr.
loop at gt_lfa1 into gs_lfa1 where lifnr = gs_opbal-lifnr.
gs_opfinal-bukrs = gs_opbal-bukrs.
gs_opfinal-lifnr = gs_opbal-lifnr.
gs_opfinal-gjahr = gs_opbal-gjahr.
gs_opfinal-belnr = gs_opbal-belnr.
gs_opfinal-budat = gs_opbal-budat.
gs_opfinal-bldat = gs_opbal-bldat.
gs_opfinal-waers = gs_opbal-waers.
gs_opfinal-dmbtr = gs_opbal-dmbtr.
gs_opfinal-wrbtr = gs_opbal-wrbtr.
gs_opfinal-shkzg = gs_opbal-shkzg.
gs_opfinal-blart = gs_opbal-blart.
gs_opfinal-monat = gs_opbal-monat.
gs_opfinal-hkont = gs_opbal-hkont.
gs_opfinal-prctr = gs_opbal-prctr.
gs_opfinal-name1 = gs_lfa1-name1.
if gs_opbal-shkzg = 'H'.
gs_opfinal-tcr = gs_opbal-dmbtr * -1.
gs_opfinal-tdr = '000000'.
else.
gs_opfinal-tdr = gs_opbal-dmbtr.
gs_opfinal-tcr = '000000'.
endif.
append gs_opfinal to gt_opfinal.
endloop.
endloop.
endloop.
sort gt_opfinal by bukrs lifnr prctr .
so_date-low = so_date-low - 1 .
loop at gt_opfinal into gs_opfinal.
call function 'BAPI_AP_ACC_GETKEYDATEBALANCE'
exporting
companycode = gs_opfinal-bukrs
vendor = gs_opfinal-lifnr
keydate = so_date-low
balancespgli = ' '
noteditems = ' '
importing
return = return
tables
keybalance = keybalance.
clear kb .
loop at keybalance .
kb = keybalance-lc_bal + kb .
endloop.
gs_opdisp-balc = kb.
gs_opdisp-bukrs = gs_opfinal-bukrs.
gs_opdisp-lifnr = gs_opfinal-lifnr.
gs_opdisp-name1 = gs_opfinal-name1.
at new lifnr .
sum .
gs_opfinal-tbal = gs_opfinal-tdr + gs_opfinal-tcr .
gs_opdisp-tbal = gs_opfinal-tbal.
gs_opdisp-bala = gs_opfinal-tdr .
gs_opdisp-balb = gs_opfinal-tcr .
gs_opdisp-gbal = keybalance-lc_bal + gs_opfinal-tbal .
append gs_opdisp to gt_opdisp.
endat.
clear gs_opdisp.
clear keybalance .
endloop.
delete adjacent duplicates from gt_opdisp.
endform. " sub_openbal
*& Form sub_openbal_display
text
--> p1 text
<-- p2 text
form sub_openbal_display .
call function 'REUSE_ALV_GRID_DISPLAY'
exporting
I_INTERFACE_CHECK = ' '
I_BYPASSING_BUFFER = ' '
I_BUFFER_ACTIVE = ' '
i_callback_program = repid1
I_CALLBACK_PF_STATUS_SET = ' '
I_CALLBACK_USER_COMMAND = ' '
I_CALLBACK_TOP_OF_PAGE = ' '
I_CALLBACK_HTML_TOP_OF_PAGE = ' '
I_CALLBACK_HTML_END_OF_LIST = ' '
I_STRUCTURE_NAME =
I_BACKGROUND_ID = ' '
I_GRID_TITLE =
I_GRID_SETTINGS =
IS_LAYOUT =
it_fieldcat = gt_fcats
IT_EXCLUDING =
IT_SPECIAL_GROUPS =
IT_SORT =
IT_FILTER =
IS_SEL_HIDE =
I_DEFAULT = 'X'
I_SAVE = 'X'
IS_VARIANT =
it_events =
IT_EVENT_EXIT =
IS_PRINT =
IS_REPREP_ID =
I_SCREEN_START_COLUMN = 0
I_SCREEN_START_LINE = 0
I_SCREEN_END_COLUMN = 0
I_SCREEN_END_LINE = 0
IT_ALV_GRAPHICS =
IT_HYPERLINK =
IT_ADD_FIELDCAT =
IT_EXCEPT_QINFO =
I_HTML_HEIGHT_TOP =
I_HTML_HEIGHT_END =
IMPORTING
E_EXIT_CAUSED_BY_CALLER =
ES_EXIT_CAUSED_BY_USER =
tables
t_outtab = gt_opdisp
exceptions
program_error = 1
others = 2
if sy-subrc <> 0.
message id sy-msgid type sy-msgty number sy-msgno
with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
endif.
endform. " sub_openbal_displayI think you are using for all entries statement in almost all select statements but i didnt see any condtion before you are using for all entries statement.
If you are using for all entries in gt_opbal ... make sure that gt_opbal has some records other wise it will try to read all records from the data base tables.
Try to check before using for all entries in the select statement like
if gt_opbal is not initial.
select adfda adfadf afdadf into table
for all entries in gt_opbal.
else.
select abdf afad into table
from abcd
where a = 1
and b = 2.
endif.
i didnt see anything wrong in your report but this is major time consuming when you dont have records in the table which you are using for all entries. -
Query Database: reduce execution time
Hi to all,
I have Oracle 11g R2.
I want reduce to max the execution time of this my select:
SELECT a.ID, a.FULLNAME, a.L_AXON, a.R_AXON, a.L_LAXON, a.R_LAXON, a.L_F_F_ADD, a.R_F_F_ADD, a.L_T_F_ADD, a.R_T_F_ADD, a.L_PC, a.R_PC FROM ITALIA_GC a WHERE SDO_WITHIN_DISTANCE(a.GEOMETRY, MDSYS.SDO_GEOMETRY(2001, 8307, MDSYS.SDO_POINT_TYPE(13.8268523, 41.491619, NULL) ,NULL, NULL), 'DISTANCE=100 UNIT=M') = 'TRUE' AND ROWNUM=1;
This query returns the name, city, postal code and address of a street of Italy. These datas are in ITALIA_GC table.
I already created an spatial index on GEOMETRY field of this table:
CREATE INDEX ITALIA_GC_IDX ON ITALIA_GC(GEOMETRY) INDEXTYPE IS MDSYS.SPATIAL_INDEX;
How can I see the execution time (i need to know the execution time in milliseconds) of this query and how can I reduce to max it?
thank you very much in advance.
CrystalThank you.
I used explain plan and SQL*Trace/tkprof method.
What I would like to know is if the execution time are misured in seconds or milliseconds (I wish to know misure in millisecond).
The result of SQL*Trace/tkprof method is:
TKPROF: Release 11.2.0.1.0 - Development on Tue Jul 27 15:33:28 2010
Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.
Trace file: dbuir_ora_29053.trc
Sort options: prsela exeela 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
SQL ID: 1bf1x0q79c1rm
Plan Hash: 2374671442
SELECT a.ID, a.FULLNAME, a.L_AXON, a.R_AXON, a.L_LAXON, a.R_LAXON,
a.L_F_F_ADD, a.R_F_F_ADD, a.L_T_F_ADD, a.R_T_F_ADD, a.L_PC, a.R_PC
FROM
ITALIA_GC a WHERE SDO_WITHIN_DISTANCE(a.GEOMETRY, MDSYS.SDO_GEOMETRY(2001,
8307, MDSYS.SDO_POINT_TYPE(13.8268523, 41.491619, NULL) ,NULL, NULL),
'DISTANCE=100 UNIT=M') = 'TRUE' 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.02 0 30 2 0
Fetch 2 0.00 0.00 0 14 0 1
total 4 0.00 0.02 0 44 2 1
Misses in library cache during parse: 0
Optimizer mode: ALL_ROWS
Parsing user id: 85
Rows Row Source Operation
1 COUNT STOPKEY (cr=110 pr=0 pw=0 time=0 us)
1 TABLE ACCESS BY INDEX ROWID ITALIA_GC (cr=110 pr=0 pw=0 time=0 us cost=0 size=4142 card=1)
1 DOMAIN INDEX ITALIA_GC_IDX (cr=109 pr=0 pw=0 time=0 us cost=0 size=0 card=0)
SQL ID: 20y2xs9zmrbc5
Plan Hash: 4105568395
SELECT a."GEOMETRY"
FROM
"SPATIAL".ITALIA_GC a where a.rowid=:rid
call count cpu elapsed disk query current rows
Parse 1 0.00 0.00 0 0 0 0
Execute 20 0.00 0.00 0 0 0 0
Fetch 20 0.00 0.00 0 20 0 20
total 41 0.00 0.00 0 20 0 20
Misses in library cache during parse: 0
Optimizer mode: ALL_ROWS
Parsing user id: 85 (recursive depth: 1)
Rows Row Source Operation
1 TABLE ACCESS BY USER ROWID ITALIA_GC (cr=1 pr=0 pw=0 time=0 us cost=1 size=3831 card=1)
SQL ID: 9pxc8jgf3tj20
Plan Hash: 1946957531
SELECT diminfo, nvl(srid,-1)
FROM
ALL_SDO_GEOM_METADATA WHERE OWNER = :own AND TABLE_NAME = NLS_UPPER(:tab)
AND '"'||COLUMN_NAME||'"' = :col
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 0 9 0 1
total 3 0.00 0.00 0 9 0 1
Misses in library cache during parse: 0
Optimizer mode: ALL_ROWS
Parsing user id: 85 (recursive depth: 1)
Rows Row Source Operation
1 VIEW ALL_SDO_GEOM_METADATA (cr=9 pr=0 pw=0 time=0 us cost=25 size=654 card=2)
1 UNION-ALL (cr=9 pr=0 pw=0 time=0 us)
1 MERGE JOIN CARTESIAN (cr=9 pr=0 pw=0 time=0 us cost=6 size=81 card=1)
1 VIEW ALL_OBJECTS (cr=7 pr=0 pw=0 time=0 us cost=5 size=45 card=1)
1 FILTER (cr=7 pr=0 pw=0 time=0 us)
1 FILTER (cr=7 pr=0 pw=0 time=0 us)
1 NESTED LOOPS (cr=7 pr=0 pw=0 time=0 us cost=5 size=124 card=1)
1 NESTED LOOPS (cr=6 pr=0 pw=0 time=0 us cost=4 size=102 card=1)
1 TABLE ACCESS BY INDEX ROWID USER$ (cr=2 pr=0 pw=0 time=0 us cost=1 size=18 card=1)
1 INDEX UNIQUE SCAN I_USER1 (cr=1 pr=0 pw=0 time=0 us cost=0 size=0 card=1)(object id 46)
1 TABLE ACCESS BY INDEX ROWID OBJ$ (cr=4 pr=0 pw=0 time=0 us cost=3 size=84 card=1)
1 INDEX RANGE SCAN I_OBJ5 (cr=3 pr=0 pw=0 time=0 us cost=2 size=0 card=1)(object id 40)
1 INDEX RANGE SCAN I_USER2 (cr=1 pr=0 pw=0 time=0 us cost=1 size=22 card=1)(object id 47)
0 TABLE ACCESS BY INDEX ROWID IND$ (cr=0 pr=0 pw=0 time=0 us cost=2 size=8 card=1)
0 INDEX UNIQUE SCAN I_IND1 (cr=0 pr=0 pw=0 time=0 us cost=1 size=0 card=1)(object id 41)
0 HASH JOIN (cr=0 pr=0 pw=0 time=0 us cost=3 size=24 card=1)
0 INDEX RANGE SCAN I_OBJAUTH1 (cr=0 pr=0 pw=0 time=0 us cost=2 size=11 card=1)(object id 62)
0 FIXED TABLE FULL X$KZSRO (cr=0 pr=0 pw=0 time=0 us cost=0 size=1300 card=100)
0 FIXED TABLE FULL X$KZSPR (cr=0 pr=0 pw=0 time=0 us cost=0 size=26 card=1)
0 FIXED TABLE FULL X$KZSPR (cr=0 pr=0 pw=0 time=0 us cost=0 size=26 card=1)
0 NESTED LOOPS (cr=0 pr=0 pw=0 time=0 us cost=2 size=48 card=2)
0 INDEX RANGE SCAN I_OBJAUTH1 (cr=0 pr=0 pw=0 time=0 us cost=2 size=11 card=1)(object id 62)
0 FIXED TABLE FULL X$KZSRO (cr=0 pr=0 pw=0 time=0 us cost=0 size=26 card=2)
0 HASH JOIN (cr=0 pr=0 pw=0 time=0 us cost=3 size=24 card=1)
0 INDEX RANGE SCAN I_OBJAUTH1 (cr=0 pr=0 pw=0 time=0 us cost=2 size=11 card=1)(object id 62)
0 FIXED TABLE FULL X$KZSRO (cr=0 pr=0 pw=0 time=0 us cost=0 size=1300 card=100)
0 FIXED TABLE FULL X$KZSPR (cr=0 pr=0 pw=0 time=0 us cost=0 size=26 card=1)
0 NESTED LOOPS (cr=0 pr=0 pw=0 time=0 us)
0 NESTED LOOPS (cr=0 pr=0 pw=0 time=0 us cost=7 size=78 card=1)
0 NESTED LOOPS (cr=0 pr=0 pw=0 time=0 us cost=5 size=68 card=1)
0 NESTED LOOPS (cr=0 pr=0 pw=0 time=0 us cost=4 size=57 card=1)
0 MERGE JOIN CARTESIAN (cr=0 pr=0 pw=0 time=0 us cost=3 size=53 card=1)
0 INDEX RANGE SCAN I_OBJ5 (cr=0 pr=0 pw=0 time=0 us cost=3 size=40 card=1)(object id 40)
0 BUFFER SORT (cr=0 pr=0 pw=0 time=0 us cost=0 size=1300 card=100)
0 FIXED TABLE FULL X$KZSRO (cr=0 pr=0 pw=0 time=0 us cost=0 size=1300 card=100)
0 INDEX RANGE SCAN I_USER2 (cr=0 pr=0 pw=0 time=0 us cost=1 size=4 card=1)(object id 47)
0 INDEX RANGE SCAN I_OBJAUTH1 (cr=0 pr=0 pw=0 time=0 us cost=1 size=11 card=1)(object id 62)
0 INDEX RANGE SCAN I_DEPENDENCY1 (cr=0 pr=0 pw=0 time=0 us cost=1 size=0 card=3)(object id 106)
0 TABLE ACCESS BY INDEX ROWID DEPENDENCY$ (cr=0 pr=0 pw=0 time=0 us cost=2 size=10 card=1)
0 FIXED TABLE FULL X$KZSPR (cr=0 pr=0 pw=0 time=0 us cost=0 size=26 card=1)
0 NESTED LOOPS (cr=0 pr=0 pw=0 time=0 us cost=2 size=72 card=2)
0 NESTED LOOPS (cr=0 pr=0 pw=0 time=0 us cost=2 size=23 card=1)
0 TABLE ACCESS BY INDEX ROWID TRIGGER$ (cr=0 pr=0 pw=0 time=0 us cost=1 size=12 card=1)
0 INDEX UNIQUE SCAN I_TRIGGER2 (cr=0 pr=0 pw=0 time=0 us cost=0 size=0 card=1)(object id 162)
0 INDEX RANGE SCAN I_OBJAUTH1 (cr=0 pr=0 pw=0 time=0 us cost=1 size=11 card=1)(object id 62)
0 FIXED TABLE FULL X$KZSRO (cr=0 pr=0 pw=0 time=0 us cost=0 size=26 card=2)
0 FIXED TABLE FULL X$KZSPR (cr=0 pr=0 pw=0 time=0 us cost=0 size=26 card=1)
0 NESTED LOOPS (cr=0 pr=0 pw=0 time=0 us)
0 NESTED LOOPS (cr=0 pr=0 pw=0 time=0 us cost=7 size=78 card=1)
0 NESTED LOOPS (cr=0 pr=0 pw=0 time=0 us cost=5 size=68 card=1)
0 NESTED LOOPS (cr=0 pr=0 pw=0 time=0 us cost=4 size=57 card=1)
0 MERGE JOIN CARTESIAN (cr=0 pr=0 pw=0 time=0 us cost=3 size=53 card=1)
0 INDEX RANGE SCAN I_OBJ5 (cr=0 pr=0 pw=0 time=0 us cost=3 size=40 card=1)(object id 40)
0 BUFFER SORT (cr=0 pr=0 pw=0 time=0 us cost=0 size=1300 card=100)
0 FIXED TABLE FULL X$KZSRO (cr=0 pr=0 pw=0 time=0 us cost=0 size=1300 card=100)
0 INDEX RANGE SCAN I_USER2 (cr=0 pr=0 pw=0 time=0 us cost=1 size=4 card=1)(object id 47)
0 INDEX RANGE SCAN I_OBJAUTH1 (cr=0 pr=0 pw=0 time=0 us cost=1 size=11 card=1)(object id 62)
0 INDEX RANGE SCAN I_DEPENDENCY1 (cr=0 pr=0 pw=0 time=0 us cost=1 size=0 card=3)(object id 106)
0 TABLE ACCESS BY INDEX ROWID DEPENDENCY$ (cr=0 pr=0 pw=0 time=0 us cost=2 size=10 card=1)
0 FIXED TABLE FULL X$KZSPR (cr=0 pr=0 pw=0 time=0 us cost=0 size=26 card=1)
0 FIXED TABLE FULL X$KZSPR (cr=0 pr=0 pw=0 time=0 us cost=0 size=26 card=1)
0 FIXED TABLE FULL X$KZSPR (cr=0 pr=0 pw=0 time=0 us cost=0 size=26 card=1)
0 FIXED TABLE FULL X$KZSPR (cr=0 pr=0 pw=0 time=0 us cost=0 size=26 card=1)
0 FIXED TABLE FULL X$KZSPR (cr=0 pr=0 pw=0 time=0 us cost=0 size=26 card=1)
0 FIXED TABLE FULL X$KZSPR (cr=0 pr=0 pw=0 time=0 us cost=0 size=26 card=1)
0 FIXED TABLE FULL X$KZSPR (cr=0 pr=0 pw=0 time=0 us cost=0 size=26 card=1)
0 FIXED TABLE FULL X$KZSPR (cr=0 pr=0 pw=0 time=0 us cost=0 size=26 card=1)
0 FIXED TABLE FULL X$KZSPR (cr=0 pr=0 pw=0 time=0 us cost=0 size=26 card=1)
0 FIXED TABLE FULL X$KZSPR (cr=0 pr=0 pw=0 time=0 us cost=0 size=26 card=1)
0 VIEW (cr=0 pr=0 pw=0 time=0 us cost=2 size=13 card=1)
0 FAST DUAL (cr=0 pr=0 pw=0 time=0 us cost=2 size=0 card=1)
0 FIXED TABLE FULL X$KZSPR (cr=0 pr=0 pw=0 time=0 us cost=0 size=26 card=1)
0 FIXED TABLE FULL X$KZSPR (cr=0 pr=0 pw=0 time=0 us cost=0 size=26 card=1)
0 FIXED TABLE FULL X$KZSPR (cr=0 pr=0 pw=0 time=0 us cost=0 size=26 card=1)
0 FIXED TABLE FULL X$KZSPR (cr=0 pr=0 pw=0 time=0 us cost=0 size=26 card=1)
0 FIXED TABLE FULL X$KZSPR (cr=0 pr=0 pw=0 time=0 us cost=0 size=26 card=1)
0 FIXED TABLE FULL X$KZSPR (cr=0 pr=0 pw=0 time=0 us cost=0 size=26 card=1)
0 FIXED TABLE FULL X$KZSPR (cr=0 pr=0 pw=0 time=0 us cost=0 size=26 card=1)
0 FIXED TABLE FULL X$KZSPR (cr=0 pr=0 pw=0 time=0 us cost=0 size=26 card=1)
0 FIXED TABLE FULL X$KZSPR (cr=0 pr=0 pw=0 time=0 us cost=0 size=26 card=1)
0 FIXED TABLE FULL X$KZSPR (cr=0 pr=0 pw=0 time=0 us cost=0 size=26 card=1)
0 FIXED TABLE FULL X$KZSPR (cr=0 pr=0 pw=0 time=0 us cost=0 size=26 card=1)
0 NESTED LOOPS (cr=0 pr=0 pw=0 time=0 us cost=2 size=21 card=1)
0 INDEX RANGE SCAN I_OBJAUTH1 (cr=0 pr=0 pw=0 time=0 us cost=2 size=8 card=1)(object id 62)
0 FIXED TABLE FULL X$KZSRO (cr=0 pr=0 pw=0 time=0 us cost=0 size=13 card=1)
0 FIXED TABLE FULL X$KZSPR (cr=0 pr=0 pw=0 time=0 us cost=0 size=26 card=1)
0 NESTED LOOPS (cr=0 pr=0 pw=0 time=0 us cost=2 size=21 card=1)
0 INDEX RANGE SCAN I_OBJAUTH1 (cr=0 pr=0 pw=0 time=0 us cost=2 size=8 card=1)(object id 62)
0 FIXED TABLE FULL X$KZSRO (cr=0 pr=0 pw=0 time=0 us cost=0 size=13 card=1)
0 FIXED TABLE FULL X$KZSPR (cr=0 pr=0 pw=0 time=0 us cost=0 size=26 card=1)
0 VIEW (cr=0 pr=0 pw=0 time=0 us cost=1 size=16 card=1)
0 SORT GROUP BY (cr=0 pr=0 pw=0 time=0 us cost=1 size=86 card=1)
0 NESTED LOOPS (cr=0 pr=0 pw=0 time=0 us cost=1 size=86 card=1)
0 MERGE JOIN CARTESIAN (cr=0 pr=0 pw=0 time=0 us cost=0 size=78 card=1)
0 NESTED LOOPS (cr=0 pr=0 pw=0 time=0 us cost=0 size=65 card=1)
0 INDEX UNIQUE SCAN I_OLAP_CUBES$ (cr=0 pr=0 pw=0 time=0 us cost=0 size=13 card=1)(object id 940)
0 TABLE ACCESS BY INDEX ROWID OLAP_DIMENSIONALITY$ (cr=0 pr=0 pw=0 time=0 us cost=0 size=52 card=1)
0 INDEX RANGE SCAN I_OLAP_DIMENSIONALITY$ (cr=0 pr=0 pw=0 time=0 us cost=0 size=0 card=1)(object id 944)
0 BUFFER SORT (cr=0 pr=0 pw=0 time=0 us cost=0 size=13 card=1)
0 INDEX FULL SCAN I_OLAP_CUBE_DIMENSIONS$ (cr=0 pr=0 pw=0 time=0 us cost=0 size=13 card=1)(object id 928)
0 INDEX RANGE SCAN I_OBJ1 (cr=0 pr=0 pw=0 time=0 us cost=1 size=8 card=1)(object id 36)
0 NESTED LOOPS (cr=0 pr=0 pw=0 time=0 us cost=2 size=29 card=1)
0 INDEX FULL SCAN I_USER2 (cr=0 pr=0 pw=0 time=0 us cost=1 size=20 card=1)(object id 47)
0 INDEX RANGE SCAN I_OBJ4 (cr=0 pr=0 pw=0 time=0 us cost=1 size=9 card=1)(object id 39)
1 BUFFER SORT (cr=2 pr=0 pw=0 time=0 us cost=6 size=36 card=1)
1 TABLE ACCESS BY INDEX ROWID SDO_GEOM_METADATA_TABLE (cr=2 pr=0 pw=0 time=0 us cost=1 size=36 card=1)
1 INDEX RANGE SCAN SDO_GEOM_IDX (cr=1 pr=0 pw=0 time=0 us cost=0 size=0 card=1)(object id 62259)
0 FILTER (cr=0 pr=0 pw=0 time=0 us)
0 HASH JOIN (cr=0 pr=0 pw=0 time=0 us cost=19 size=293 card=1)
0 MERGE JOIN CARTESIAN (cr=0 pr=0 pw=0 time=0 us cost=18 size=238 card=1)
0 NESTED LOOPS OUTER (cr=0 pr=0 pw=0 time=0 us cost=18 size=225 card=1)
0 NESTED LOOPS OUTER (cr=0 pr=0 pw=0 time=0 us cost=17 size=221 card=1)
0 NESTED LOOPS OUTER (cr=0 pr=0 pw=0 time=0 us cost=16 size=213 card=1)
0 NESTED LOOPS OUTER (cr=0 pr=0 pw=0 time=0 us cost=15 size=209 card=1)
0 NESTED LOOPS OUTER (cr=0 pr=0 pw=0 time=0 us cost=14 size=201 card=1)
0 NESTED LOOPS OUTER (cr=0 pr=0 pw=0 time=0 us cost=13 size=196 card=1)
0 NESTED LOOPS (cr=0 pr=0 pw=0 time=0 us cost=12 size=185 card=1)
0 NESTED LOOPS (cr=0 pr=0 pw=0 time=0 us cost=11 size=181 card=1)
0 NESTED LOOPS (cr=0 pr=0 pw=0 time=0 us cost=9 size=172 card=1)
0 NESTED LOOPS (cr=0 pr=0 pw=0 time=0 us cost=8 size=144 card=1)
0 NESTED LOOPS (cr=0 pr=0 pw=0 time=0 us cost=7 size=123 card=1)
0 NESTED LOOPS (cr=0 pr=0 pw=0 time=0 us cost=6 size=120 card=1)
0 NESTED LOOPS (cr=0 pr=0 pw=0 time=0 us cost=5 size=90 card=1)
0 NESTED LOOPS (cr=0 pr=0 pw=0 time=0 us cost=2 size=54 card=1)
0 TABLE ACCESS BY INDEX ROWID USER$ (cr=0 pr=0 pw=0 time=0 us cost=1 size=18 card=1)
0 INDEX UNIQUE SCAN I_USER1 (cr=0 pr=0 pw=0 time=0 us cost=0 size=0 card=1)(object id 46)
0 TABLE ACCESS BY INDEX ROWID SDO_GEOM_METADATA_TABLE (cr=0 pr=0 pw=0 time=0 us cost=1 size=36 card=1)
0 INDEX RANGE SCAN SDO_GEOM_IDX (cr=0 pr=0 pw=0 time=0 us cost=0 size=0 card=1)(object id 62259)
0 TABLE ACCESS BY INDEX ROWID OBJ$ (cr=0 pr=0 pw=0 time=0 us cost=3 size=36 card=1)
0 INDEX RANGE SCAN I_OBJ2 (cr=0 pr=0 pw=0 time=0 us cost=2 size=0 card=1)(object id 37)
0 TABLE ACCESS CLUSTER TAB$ (cr=0 pr=0 pw=0 time=0 us cost=1 size=30 card=1)
0 INDEX UNIQUE SCAN I_OBJ# (cr=0 pr=0 pw=0 time=0 us cost=0 size=0 card=1)(object id 3)
0 TABLE ACCESS CLUSTER TS$ (cr=0 pr=0 pw=0 time=0 us cost=1 size=3 card=1)
0 INDEX UNIQUE SCAN I_TS# (cr=0 pr=0 pw=0 time=0 us cost=0 size=0 card=1)(object id 7)
0 TABLE ACCESS CLUSTER COL$ (cr=0 pr=0 pw=0 time=0 us cost=1 size=21 card=1)
0 TABLE ACCESS CLUSTER COLTYPE$ (cr=0 pr=0 pw=0 time=0 us cost=1 size=28 card=1)
0 TABLE ACCESS BY INDEX ROWID OBJ$ (cr=0 pr=0 pw=0 time=0 us cost=2 size=9 card=1)
0 INDEX RANGE SCAN I_OBJ3 (cr=0 pr=0 pw=0 time=0 us cost=1 size=0 card=1)(object id 38)
0 INDEX RANGE SCAN I_USER2 (cr=0 pr=0 pw=0 time=0 us cost=1 size=4 card=1)(object id 47)
0 TABLE ACCESS CLUSTER SEG$ (cr=0 pr=0 pw=0 time=0 us cost=1 size=11 card=1)
0 INDEX UNIQUE SCAN I_FILE#_BLOCK# (cr=0 pr=0 pw=0 time=0 us cost=0 size=0 card=1)(object id 9)
0 INDEX RANGE SCAN I_OBJ1 (cr=0 pr=0 pw=0 time=0 us cost=1 size=5 card=1)(object id 36)
0 INDEX RANGE SCAN I_OBJ1 (cr=0 pr=0 pw=0 time=0 us cost=1 size=8 card=1)(object id 36)
0 INDEX RANGE SCAN I_USER2 (cr=0 pr=0 pw=0 time=0 us cost=1 size=4 card=1)(object id 47)
0 INDEX RANGE SCAN I_OBJ1 (cr=0 pr=0 pw=0 time=0 us cost=1 size=8 card=1)(object id 36)
0 INDEX RANGE SCAN I_USER2 (cr=0 pr=0 pw=0 time=0 us cost=1 size=4 card=1)(object id 47)
0 BUFFER SORT (cr=0 pr=0 pw=0 time=0 us cost=17 size=1300 card=100)
0 FIXED TABLE FULL X$KSPPCV (cr=0 pr=0 pw=0 time=0 us cost=0 size=1300 card=100)
0 FIXED TABLE FULL X$KSPPI (cr=0 pr=0 pw=0 time=0 us cost=0 size=55 card=1)
0 NESTED LOOPS (cr=0 pr=0 pw=0 time=0 us cost=2 size=21 card=1)
0 INDEX RANGE SCAN I_OBJAUTH1 (cr=0 pr=0 pw=0 time=0 us cost=2 size=8 card=1)(object id 62)
0 FIXED TABLE FULL X$KZSRO (cr=0 pr=0 pw=0 time=0 us cost=0 size=13 card=1)
0 FIXED TABLE FULL X$KZSPR (cr=0 pr=0 pw=0 time=0 us cost=0 size=26 card=1)
********************************************************************************The result of Explain plan method is:
PLAN_TABLE_OUTPUT
Plan hash value: 2374671442
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
PLAN_TABLE_OUTPUT
| 0 | SELECT STATEMENT | | 1 | 4142 | 0 (0) | 00:00:01 |
|* 1 | COUNT STOPKEY | | | | | |
| 2 | TABLE ACCESS BY INDEX ROWID| ITALIA_GC | 49989 | 197M| 0 (0)| 00:00:01 |
|* 3 | DOMAIN INDEX | ITALIA_GC_IDX | | | 0 (0) | 00:00:01 |
PLAN_TABLE_OUTPUT
Predicate Information (identified by operation id):
1 - filter(ROWNUM=1)
3 - access("MDSYS"."SDO_WITHIN_DISTANCE"("A"."GEOMETRY","MDSYS"."SDO_GEOMETRY"(2001
PLAN_TABLE_OUTPUT
,8307,"MDSYS"."SDO_POINT_TYPE"(13.8268523,41.491619,NULL),NULL,NULL),'DISTANCE=100 UNIT=M')='TRUE')
Note
- dynamic sampling used for this statement (level=2)
22 rows selected.thank you very much. -
Reduce execution time with selects
Hi,
I have to reduce the execution time in a report, most of the consumed time is in the select query.
I have a table, gt_result:
DATA: BEGIN OF gwa_result,
tknum LIKE vttk-tknum,
stabf LIKE vttk-stabf,
shtyp LIKE vttk-shtyp,
route LIKE vttk-route,
vsart LIKE vttk-vsart,
signi LIKE vttk-signi,
dtabf LIKE vttk-dtabf,
vbeln LIKE likp-vbeln,
/bshm/le_nr_cust LIKE likp-/bshm/le_nr_cust,
vkorg LIKE likp-vkorg,
werks LIKE likp-werks,
regio LIKE kna1-regio,
land1 LIKE kna1-land1,
xegld LIKE t005-xegld,
intca LIKE t005-intca,
bezei LIKE tvrot-bezei,
bezei1 LIKE t173t-bezei,
fecha(10) type c.
DATA: END OF gwa_result.
DATA: gt_result LIKE STANDARD TABLE OF gwa_result.
And the select query is this:
SELECT ktknum kstabf kshtyp kroute kvsart ksigni
k~dtabf
lvbeln l/bshm/le_nr_cust lvkorg lwerks nregio nland1 oxegld ointca
tbezei ttbezei
FROM vttk AS k
INNER JOIN vttp AS p ON ktknum = ptknum
INNER JOIN likp AS l ON pvbeln = lvbeln
INNER JOIN kna1 AS n ON lkunnr = nkunnr
INNER JOIN t005 AS o ON nland1 = oland1
INNER JOIN tvrot AS t ON troute = kroute AND t~spras = sy-langu
INNER JOIN t173t AS tt ON ttvsart = kvsart AND tt~spras = sy-langu
INTO TABLE gt_result
WHERE ktknum IN s_tknum AND ktplst IN s_tplst AND k~route IN s_route AND
k~erdat BETWEEN s_erdat-low AND s_erdat-high AND
l~/bshm/le_nr_cust <> ' ' "IS NOT NULL
AND k~stabf = 'X'
AND ktknum NOT IN ( SELECT tktknum FROM vttk AS tk
INNER JOIN vttp AS tp ON tktknum = tptknum
INNER JOIN likp AS tl ON tpvbeln = tlvbeln
WHERE l~/bshm/le_nr_cust IS NULL )
AND k~tknum NOT IN ( SELECT tknum FROM /bshs/ssm_eship )
AND ( o~xegld = ' '
OR ( o~xegld = 'X' AND
( ( n~land1 = 'ES'
AND ( nregio = '51' OR nregio = '52'
OR nregio = '35' OR nregio = '38' ) )
OR n~land1 = 'ESC' ) )
OR ointca = 'AD' OR ointca = 'GI' ).
Does somebody know how to reduce the execution time ?.
Thanks.Hi,
Try to remove the join. Use seperate selects as shown in example below and for the sake of selection, keep some key fields in your internal table.
Then once your final table is created, you can copy the table into GT_FINAL which will contain only fields you need.
EX
data : begin of it_likp occurs 0,
vbeln like likp-vbeln,
/bshm/le_nr_cust like likp-/bshm/le_nr_cust,
vkorg like likp-vkorg,
werks like likp-werks,
kunnr likr likp-kunnr,
end of it_likp.
data : begin of it_kna1 occurs 0,
kunnr like...
regio....
land1...
end of it_kna1 occurs 0,
Select tknum stabf shtyp route vsart signi dtabf
from VTTP
into table gt_result
WHERE tknum IN s_tknum AND
tplst IN s_tplst AND
route IN s_route AND
erdat BETWEEN s_erdat-low AND s_erdat-high.
select vbeln /bshm/le_nr_cust
vkorg werks kunnr
from likp
into table it_likp
for all entries in gt_result
where vbeln = gt_result-vbeln.
select kunnr
regio
land1
from kna1
into it_kna1
for all entries in it_likp.
similarly for other tables.
Then loop at gt result and read corresponding table and populate entire record :
loop at gt_result.
read table it_likp where vbeln = gt_result-vbeln.
if sy-subrc eq 0.
move corresponding fields of it_likp into gt_result.
gt_result-kunnr = it_likp-kunnr.
modify gt_result.
endif.
read table it_kna1 where kunnr = gt_result-vbeln.
if sy-subrc eq 0.
gt_result-regio = it-kna1-regio.
gt_result-land1 = it-kna1-land1.
modify gt_result.
endif.
endloop. -
Regarding performance enhancement to reduce execution time
Hi ,
actually there is a following piece of code(a SELECT query) in my program,due to which TIME OUT dump occurs.plz help me to modify the code to reduce it's execution time.
code is:
DATA: at_seque_extref TYPE zprms_ord_ind OCCURS 0 WITH HEADER LINE.
SELECT (sv_fields) FROM zprms_ord_ind
APPENDING CORRESPONDING FIELDS OF TABLE at_seque
UP TO lv_max_sequs ROWS
WHERE process_type IN lr_process_type
AND posting_date IN lr_pos_date
AND sol_date IN lr_sol_date
AND changed_at IN lr_chg_date
AND external_ref NE space
AND (ls_where)
AND ib_comp_network IN lr_ibc_netw
AND ib_comp_node IN lr_ibc_node
AND ib_comp_site IN lr_ibc_site
ORDER BY (iv_order_by).
CLEAR at_seque_extref.
LOOP AT at_seque.
IF at_seque-external_ref CP is_bus_trans_search-external_ref .
MOVE-CORRESPONDING at_seque TO at_seque_extref.
APPEND at_seque_extref.
ENDIF.
ENDLOOP.
CLEAR at_seque[].
*the table at_seque[] type zprms_ord_ind
Or plz suggest me check points to reduce it's execution time.DATA: at_seque_extref TYPE zprms_ord_ind OCCURS 0 WITH HEADER LINE.
SELECT (sv_fields) FROM zprms_ord_ind
<b>PACKAGE SIZE 100</b>
APPENDING CORRESPONDING FIELDS OF TABLE at_seque
UP TO lv_max_sequs ROWS
WHERE process_type IN lr_process_type
AND posting_date IN lr_pos_date
AND sol_date IN lr_sol_date
AND changed_at IN lr_chg_date
AND external_ref NE space
AND (ls_where)
AND ib_comp_network IN lr_ibc_netw
AND ib_comp_node IN lr_ibc_node
AND ib_comp_site IN lr_ibc_site
ORDER BY (iv_order_by).
<b>ENDSELECT.</b>
CLEAR at_seque_extref.
LOOP AT at_seque.
IF at_seque-external_ref CP is_bus_trans_search-external_ref .
MOVE-CORRESPONDING at_seque TO at_seque_extref.
APPEND at_seque_extref.
ENDIF.
ENDLOOP.
CLEAR at_seque[].
Make the necessary modifications.
Copy paste the code.
Regards,
Pavan -
To reduce execution time of a Business Objects Dataservices job.
The issue that we are facing-
Our goal- To compare a record from a file with 422928 records from another table on basis of name & country, if a match is found then you take some specific columns of that matched record (from the table ) as our ouput.
What we are doing- We are at 1st removing duplicates by doing matching on the address components (i.e.- addr_line1, city, state, postal code & country), here the break key for match transform is country & postal_code, its taking 1823.98 secs. Now the record count is 193317
Then we are merging the file record along with the 193317 records to put them in the same path and send them for matching.
The match criteria is the firm name & iso_country_cd,
the break key for match transform is the iso_country_cd & the 1st letter of the name.
It took 1155.156 secs.
We have used the "Run match as seperate process' option for the match to reduce the time.
The whole job took 3038.805 secs.
Please suggest how to reduce the execution time.
Edited by: Susmit Das on Mar 29, 2010 7:41 AMThis really is impossible to help with without seeing your code.
Replacing while loops with Timed Loops will not help. Timed Loops are used for slowing while loops down in a controlled manner. You would use them to synchronise with a clock rate, and can set other parameters for priority and CPU allocation etc. These will not likely help to reduce your execution time.
If you are seeing code execution of 1 second then you will need to optimise your code to reduce the execution time. There are LabVIEW guides on how to improve your code execution time, just search around for them.
Also try using the Profiling tools to learn which VIs (I presume your code is componentised and each while loop contains subVIs?) are hogging the most CPU time.
If you cannot share your VI then there it is very hard to know where your code execution bottlenecks are.
Thoric (CLA, CLED, CTD and LabVIEW Champion) -
How to reduce the execution time of this code?
Loop at porder1.
SELECT aufnr bstmg hsdat sgtxt bwart charg FROM mseg INTO
(porder-aufnr,porder-bstmg,porder-hsdat,porder-sgtxt,porder-bwart,
porder-charg)
WHERE matnr = porder1-matnr AND
aufnr = porder1-aufnr AND
werks = porder1-pwerk AND
( bwart = '101' OR
bwart = '102' ).
Endselect.
Endloop.
Regards
Praju .Hi prajwal.
I would like to suggest,
It is possible to reduce the time of execution by Increasing the number of fields in the WHERE clause as only those specific number of records are fetched which results in comparatively less execution time.
Also, SAP has designed such powerfull tools like Transactions - ST05, ST07, ST30, and many more
I would like to suggest you a couple of references relating to your case,
[SDN - Reference for Long execution time during processing of a select query|/thread/477540 [original link is broken];
[SDN - Reference for Reducing the Execution time of the program - Tools|How can i reduce time of execution;
[SDN - Reference for solutions to reduce the execution time of a program|How to reduce my query execution time?;
Hope that's usefull.
Good Luck & Regards.
Harsh Dave -
Reducing execution time?
hi all,
Am running a report. It is taking long time for execution. What steps should i do to reduce the execution time.
thanks in advance,
ashu.Hi,
use primary / secondary index keys in the where clause of the select query
DO NOT use a negative in the where clause - it negates the index.
While reading internal tables use binary search.
sort itab by <field1 field2>
read table itab with key <field1 field2> binary search.
before using for all entries check if the internal table has something .. else all records form DB will get selected.
Regards,
Guarav -
Need help to reduce execution time for a procedure
the following procedure takes to long to execute and the server times out. each individual select works perfectly. It does not have to do with the SORT_AREA_SIZE/PGA_AGGREGATE_TARGET not being large enough. Possible rewriting it in funcions might help i don't know.
Thanks in advance
PROCEDURE GET_RM_WORKABILITY_BY_PLANT
(p_in_plantcode IN VARCHAR2,
p_in_statusnum IN NUMBER,
p_out_cursor IN OUT tcursor) AS
BEGIN
OPEN p_out_cursor FOR
select comp.segment1,
comp.description,
comp.organization_id,
nvl(sum(jot.qty), 0) job_qty,
nvl(moq.qty, 0) onhand_qty
from (select jdl.bill_sequence_id bsid,
sum(jdl.job_qty) qty
from job_detail_lines jdl
where jdl.job_stat = p_in_statusnum
and jdl.prod_plant_id = p_in_plantcode
group by jdl.bill_sequence_id) jot,
(select m.inventory_item_id,
sum(m.transaction_quantity) qty
from mtl_onhand_quantities m
where exists
(select 'x'
from plant_codes p1,
plant_codes p
where p.plant_code = p_in_plantcode
and p1.fac_id = p.fac_id
and m.organization_id = p1.organization_id)
group by m.inventory_item_id) moq,
(select msi.segment1,
msi.description,
msi.organization_id,
msi.inventory_item_id,
bom.bill_sequence_id
from bom.bom_bill_of_materials bom,
bom.bom_inventory_components bic,
mtl_system_items msi,
plant_codes pc
where pc.plant_code = p_in_plantcode
and msi.organization_id = pc.organization_id
and msi.item_type||'' IN ('PSSRM', 'PSRM')
and bic.component_item_id = msi.inventory_item_id
and ((bic.disable_date IS NULL AND SYSDATE>= bic.effectivity_date)
or (SYSDATE <= bic.disable_date AND SYSDATE >= bic.effectivity_date))
and bom.bill_sequence_id = bic.bill_sequence_id
and bom.organization_id = 102) comp
where moq.inventory_item_id(+) = comp.inventory_item_id
and jot.bsid(+) = comp.bill_sequence_id
group by comp.segment1,
comp.description,
comp.organization_id,
moq.qty;
END;Ok, so how does it perform if you use the bom info as an in-line query outer join to job detail lines?
SELECT v.plant_code,
v.segment1,
v.description,
v.organization_id,
v.inventory_item_id,
SUM (jdl.job_qty) job_qty
FROM (
SELECT pc.plant_code,
msi.segment1,
msi.description,
msi.organization_id,
msi.inventory_item_id,
bom.bill_sequence_id
FROM bom.bom_bill_of_materials bom,
bom.bom_inventory_components bic,
mtl_system_items msi,
plant_codes pc
WHERE pc.plant_code = p_in_plantcode
AND msi.organization_id = pc.organization_id
AND msi.item_type || '' IN ('PSSRM', 'PSRM')
AND bic.component_item_id = msi.inventory_item_id
AND bic.effectivity_date <= SYSDATE
AND ( bic.disable_date IS NULL
OR bic.disable_date >= SYSDATE)
AND bom.bill_sequence_id = bic.bill_sequence_id
AND bom.organization_id = 102
) v,
job_detail_lines jdl
WHERE jdl.prod_plant_id(+) = v.plant_code
AND jdl.bsid(+) = v.bill_sequence_id
AND jdl.job_stat(+) = p_in_statusnum
GROUP BY
v.plant_code,
v.segment1,
v.description,
v.organization_id,
v.inventory_item_id; -
Hi all,
I am executing an insert query with about 2 million of records. I is taking around 4 hrs to execute.
Sometime it is giving error of (ORA-01652: unable to extend temp segment by string in tablespace).
I cannot increase temp. tablespace.
Thanks.Hi,
TEMP tablespace ?
Why you cannot increase the datafile size ?
Error: ORA-01652: unable to extend temp segment by num in tablespace name
Cause: You failed to allocate extent for temp segment in the tablespace.
Action: The options to resolve this Oracle error are:
1. Create your object in another tablespace.
2. Add additional files to the tablespace using the ALTER TABLESPACE ADD DATAFILE command.
eg:
ALTER DATABASE DATAFILE 'pathedatafilename_to_increase' RESIZE nnn;
or
ALTER TABLESPACE tablespacename ADD DATAFILE 'pathnameNEWdatafile' SIZE nnn;
If you desire, try to use the direct inserts (PARALLEL or SERIAL ) to fast inserts
eg: INSERT /*+ APPEND */ INTO MYTAB SELECT * FROM OTHERTAB;
Cheers -
How to reduce execution time of this SQL?
This SQL will output only 2 rows. I tried using hints (an index) but to no avail.
http://www.freeimagehosting.net/uploads/cf214afcf1.jpg
Or, is it NOT possible, limit of query optimization has reached?Rakesh jayappa wrote:
Hi,
Run the sql tuning advisory.
Let me know recommendation.
Kind Regards,
Rakesh************************** Here is my tuning request **************************
1.) The following SQL statement has been identified to perform poorly. It currently takes up to 12 seconds to execute, but it's supposed to take a second at most.
This is the statement:
select DISTINCT trunc(c.sst_post_date) as post_date
from ac_t_sessn b , ac_t_ssntr c
where
b.ses_status = 0
and b.ses_profit_center = c.sst_profit_center
and b.ses_acct_year = c.sst_acct_year
and b.ses_acct_period = c.sst_acct_period
and b.ses_sessn_no = c.sst_sessn_no
AND
C.sst_post_mtd||C.sst_post_TYPE IN
(SELECT Y.pst_post_mtd||Y.pst_post_type
FROM ac_r_post_functions Y
WHERE Y.pst_post_status IN (0,'2'))
order by trunc(c.sst_post_date);It should return data from a table in a specific order.
2.) The version of the database is Oracle9i Enterprise Edition Release *9.2.0.6.0*
3.) These are the parameters relevant to the optimizer:
UAT_UML@umltest>show parameter optimizer
NAME TYPE VALUE
optimizer_dynamic_sampling integer 1
optimizer_features_enable string 9.2.0
optimizer_index_caching integer 0
optimizer_index_cost_adj integer 100
optimizer_max_permutations integer 2000
optimizer_mode string CHOOSE
UAT_UML@umltest>show parameter db_file_multi
NAME TYPE VALUE
db_file_multiblock_read_count integer 16
UAT_UML@umltest>show parameter db_block_size
NAME TYPE VALUE
db_block_size integer 8192
UAT_UML@umltest>show parameter cursor_sharing
NAME TYPE VALUE
cursor_sharing string EXACT
UAT_UML@umltest>column sname format a20
UAT_UML@umltest>column pname format a20
UAT_UML@umltest>column pval2 format a20
UAT_UML@umltest>select
2 sname
3 , pname
4 , pval1
5 , pval2
6 from
7 sys.aux_stats$;
no rows selected4.) Here is the output of EXPLAIN PLAN:
UAT_UML@umltest>select * from table(dbms_xplan.display);
PLAN_TABLE_OUTPUT
| Id | Operation | Name | Rows | Bytes |TempSpc| Cost |
| 0 | SELECT STATEMENT | | 454 | 22700 | | 5391 |
| 1 | SORT UNIQUE | | 454 | 22700 | | 5072 |
| 2 | HASH JOIN | | 69384 | 3387K| 2592K| 4478 |
| 3 | INDEX FAST FULL SCAN| INDX_AC_T_SESSN | 110K| 1294K| | 244 |
| 4 | HASH JOIN | | 416K| 15M| | 3877 |
| 5 | TABLE ACCESS FULL | AC_R_POST_FUNCTIONS | 23 | 253 | | 2 |
| 6 | TABLE ACCESS FULL | AC_T_SSNTR | 1790K| 46M| | 3866 |
Note: cpu costing is off, PLAN_TABLE' is old version5.) Here is the output of SQL*Plus AUTOTRACE including the TIMING information:
UAT_UML@umltest>set autotrace traceonly arraysize 100
UAT_UML@umltest>
UAT_UML@umltest>select DISTINCT trunc(c.sst_post_date) as post_date
2 from ac_t_sessn b , ac_t_ssntr c
3 where
4 b.ses_status = 0
5 and b.ses_profit_center = c.sst_profit_center
6 and b.ses_acct_year = c.sst_acct_year
7 and b.ses_acct_period = c.sst_acct_period
8 and b.ses_sessn_no = c.sst_sessn_no
9 AND
10 C.sst_post_mtd||C.sst_post_TYPE IN (SELECT Y.pst_post_mtd||Y.pst_post_type FROM ac_r_po
st_functions Y
11 WHERE Y.pst_post_status IN (0,'2'))
12 order by trunc(c.sst_post_date);
Execution Plan
0 SELECT STATEMENT Optimizer=CHOOSE (Cost=5391 Card=454 Bytes=
22700)
1 0 SORT (UNIQUE) (Cost=5072 Card=454 Bytes=22700)
2 1 HASH JOIN (Cost=4478 Card=69384 Bytes=3469200)
3 2 INDEX (FAST FULL SCAN) OF 'INDX_AC_T_SESSN' (NON-UNIQU
E) (Cost=244 Card=110433 Bytes=1325196)
4 2 HASH JOIN (Cost=3877 Card=416304 Bytes=15819552)
5 4 TABLE ACCESS (FULL) OF 'AC_R_POST_FUNCTIONS' (Cost=2
Card=23 Bytes=253)
6 4 TABLE ACCESS (FULL) OF 'AC_T_SSNTR' (Cost=3866 Card=
1790555 Bytes=48344985)
Statistics
0 recursive calls
0 db block gets
42741 consistent gets
171 physical reads
0 redo size
425 bytes sent via SQL*Net to client
507 bytes received via SQL*Net from client
2 SQL*Net roundtrips to/from client
1 sorts (memory)
0 sorts (disk)
2 rows processed
UAT_UML@umltest>DISCONNECT
Disconnected from Oracle9i Enterprise Edition Release 9.2.0.6.0 - Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.6.0 - Production6.) The TKPROF output snippet
TKPROF: Release 11.2.0.1.0 - Development on Wed Oct 27 12:47:35 2010
Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.
Trace file: umltest_ora_1604.trc
Sort options: prsela exeela 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 DISTINCT trunc(c.sst_post_date) as post_date
from ac_t_sessn b , ac_t_ssntr c
where
b.ses_status = 0
and b.ses_profit_center = c.sst_profit_center
and b.ses_acct_year = c.sst_acct_year
and b.ses_acct_period = c.sst_acct_period
and b.ses_sessn_no = c.sst_sessn_no
AND
C.sst_post_mtd||C.sst_post_TYPE IN (SELECT Y.pst_post_mtd||Y.pst_post_type FROM ac_r_post_functions Y
WHERE Y.pst_post_status IN (0,'2'))
order by trunc(c.sst_post_date)
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 2 3.20 4.38 171 42741 0 2
total 4 3.21 4.39 171 42741 0 2
Misses in library cache during parse: 1
Optimizer mode: CHOOSE
Parsing user id: 445
Rows Row Source Operation
2 SORT UNIQUE
24 HASH JOIN
11 INDEX FAST FULL SCAN OBJ#(62817) (object id 62817)
2293715 HASH JOIN
31 TABLE ACCESS FULL OBJ#(67305)
1790555 TABLE ACCESS FULL OBJ#(62828)
alter session set sql_trace true
call count cpu elapsed disk query current rows
Parse 0 0.00 0.00 0 0 0 0
Execute 1 0.00 0.00 0 0 0 0
Fetch 0 0.00 0.00 0 0 0 0
total 1 0.00 0.00 0 0 0 0
Misses in library cache during parse: 0
Misses in library cache during execute: 1
Optimizer mode: CHOOSE
Parsing user id: 445
OVERALL TOTALS FOR ALL NON-RECURSIVE STATEMENTS
call count cpu elapsed disk query current rows
Parse 1 0.01 0.00 0 0 0 0
Execute 2 0.00 0.00 0 0 0 0
Fetch 2 3.20 4.38 171 42741 0 2
total 5 3.21 4.39 171 42741 0 2
Misses in library cache during parse: 1
Misses in library cache during execute: 1
OVERALL TOTALS FOR ALL RECURSIVE STATEMENTS
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 0 0.00 0.00 0 0 0 0
total 0 0.00 0.00 0 0 0 0
Misses in library cache during parse: 0
2 user SQL statements in session.
0 internal SQL statements in session.
2 SQL statements in session.
Trace file: umltest_ora_1604.trc
Trace file compatibility: 9.02.00
Sort options: prsela exeela fchela
1 session in tracefile.
2 user SQL statements in trace file.
0 internal SQL statements in trace file.
2 SQL statements in trace file.
2 unique SQL statements in trace file.
51 lines in trace file.
10 elapsed seconds in trace file. Any help would be greatly appreciated? -
How to reduce execution time of SQL Query
hi ,
i'm working on oracle ERP application i wanna to create an OAF page that shows some data on tables .
i've wirte the query but it take long time . .
any body can help :
SELECT *
FROM (SELECT person_id,
transaction_id,
segment1 AS TA_number,
segment9 AS Travel_Distination,
SUBSTR (segment5, 0, 10) AS Travel_Date,
creation_date AS request_date,
status,
full_name AS Current_Approver
FROM ( (SELECT PPF.PERSON_ID,
ht.TRANSACTION_ID,
pac.segment1,
pac.segment2,
pac.segment3,
pac.segment4,
pac.segment5,
pac.segment6,
pac.segment7,
pac.segment8,
pac.segment9,
pac.creation_date,
DECODE (al.approval_status,
NULL, 'Pending For Approval',
'APPROVE', 'Finally Approved',
al.approval_status)
status,
al.order_number,
almin.order_number approver_order,
ppf2.full_name
FROM HR_API_TRANSACTION_Values htv,
HR_API_TRANSACTIONS ht,
HR_API_TRANSACTION_STEPS hts,
PER_ANALYSIS_CRITERIA pac,
hr.Ame_Approvals_History ah,
per_people_f ppf,
per_people_f ppf2,
apps.fnd_user fu,
apps.AME_TEMP_OLD_APPROVER_LISTS al,
apps.AME_TEMP_OLD_APPROVER_LISTS almin
WHERE al.application_id = '-81'
AND al.transaction_id = ht.TRANSACTION_ID
AND (al.approval_status NOT LIKE '%REP%'
OR al.approval_status IS NULL)
AND al.order_number =
(SELECT MAX (ao.order_number)
FROM apps.AME_TEMP_OLD_APPROVER_LISTS ao
WHERE ao.transaction_id =
ht.TRANSACTION_ID
AND (ao.approval_status NOT LIKE
'%REP%'
OR ao.approval_status IS NULL))
AND ht.creator_person_id = PPF.PERSON_ID
AND ht.TRANSACTION_ID = ah.transaction_id
AND HT.TRANSACTION_ID = HTS.TRANSACTION_ID
AND fu.employee_id = PPF2.person_id
AND almin.order_number =
(SELECT MIN (aomin.order_number)
FROM apps.AME_TEMP_OLD_APPROVER_LISTS aomin
WHERE aomin.transaction_id =
ht.TRANSACTION_ID
AND aomin.approval_status IS NULL)
AND almin.transaction_id = ht.TRANSACTION_ID
AND almin.name = fu.user_name
AND hts.TRANSACTION_STEP_ID =
HTV.TRANSACTION_STEP_ID
AND HTV.NAME = 'P_ANALYSIS_CRITERIA_ID'
AND HTV.NUMBER_VALUE =
PAC.ANALYSIS_CRITERIA_ID
AND SYSDATE BETWEEN ppf.effective_start_date
AND ppf.effective_end_date
AND PROCESS_NAME = 'TA_AEC')
UNION
(SELECT PPF.PERSON_ID,
ht.TRANSACTION_ID,
pac.segment1,
pac.segment2,
pac.segment3,
pac.segment4,
pac.segment5,
pac.segment6,
pac.segment7,
pac.segment8,
pac.segment9,
pac.creation_date,
DECODE (al.approval_status,
NULL, 'Pending For Approval',
'APPROVE', 'Finally Approved',
al.approval_status)
status,
al.order_number,
al.order_number AS approver_order,
'' AS name
FROM HR_API_TRANSACTION_Values htv,
HR_API_TRANSACTIONS ht,
HR_API_TRANSACTION_STEPS hts,
PER_ANALYSIS_CRITERIA pac,
hr.Ame_Approvals_History ah,
per_people_f ppf,
per_people_f ppf2,
apps.fnd_user fu,
apps.AME_TEMP_OLD_APPROVER_LISTS al,
apps.AME_TEMP_OLD_APPROVER_LISTS almin
WHERE al.application_id = '-81'
AND al.approval_status IS NOT NULL
AND al.transaction_id = ht.TRANSACTION_ID
AND ht.creator_person_id = PPF.PERSON_ID
AND ht.TRANSACTION_ID = ah.transaction_id
AND HT.TRANSACTION_ID = HTS.TRANSACTION_ID
AND PROCESS_NAME = 'TA_AEC'
AND fu.employee_id = PPF2.person_id
AND al.order_number =
(SELECT MAX (ao.order_number)
FROM apps.AME_TEMP_OLD_APPROVER_LISTS ao
WHERE ao.transaction_id =
ht.TRANSACTION_ID
AND (ao.approval_status NOT LIKE
'%REP%'
OR ao.approval_status IS NULL))
AND al.name = fu.user_name
AND almin.transaction_id = ht.TRANSACTION_ID
AND hts.TRANSACTION_STEP_ID =
HTV.TRANSACTION_STEP_ID
AND HTV.NAME = 'P_ANALYSIS_CRITERIA_ID'
AND HTV.NUMBER_VALUE = PAC.ANALYSIS_CRITERIA_ID
AND SYSDATE BETWEEN ppf.effective_start_date
AND ppf.effective_end_date
AND PROCESS_NAME = 'TA_AEC'))) QRSLT
WHERE (person_id = 26773)
ORDER BY request_date DESCsee also this . .
Optimizer Environment (10053)
# Is
Default Parameter Current
Value
1 N _sort_elimination_cost_ratio 5
2 N _pga_max_size 838860 KB
3 N _b_tree_bitmap_plans false
4 N _fast_full_scan_enabled false
5 N _like_with_bind_as_equality true
6 N optimizer_secure_view_merging false
7 Y optimizer_mode_hinted false
8 Y optimizer_features_hinted 0.0.0
9 Y parallel_execution_enabled true
10 Y parallel_query_forced_dop 0
11 Y parallel_dml_forced_dop 0
12 Y parallel_ddl_forced_degree 0
13 Y parallel_ddl_forced_instances 0
14 Y _query_rewrite_fudge 90
15 Y optimizer_features_enable 10.2.0.4
16 Y _optimizer_search_limit 5
17 Y cpu_count 4
18 Y active_instance_count 1
19 Y parallel_threads_per_cpu 2
20 Y hash_area_size 131072
21 Y bitmap_merge_area_size 1048576
22 Y sort_area_size 65536
23 Y sort_area_retained_size 0
24 Y _optimizer_block_size 8192
25 Y _sort_multiblock_read_count 2
26 Y _hash_multiblock_io_count 0
27 Y _db_file_optimizer_read_count 8
28 Y _optimizer_max_permutations 2000
29 Y pga_aggregate_target 4194304 KB
30 Y _query_rewrite_maxdisjunct 257
# Is
Default Parameter Current
Value
31 Y _smm_auto_min_io_size 56 KB
32 Y _smm_auto_max_io_size 248 KB
33 Y _smm_min_size 1024 KB
34 Y _smm_max_size 419430 KB
35 Y _smm_px_max_size 2097152 KB
36 Y _cpu_to_io 0
37 Y _optimizer_undo_cost_change 10.2.0.4
38 Y parallel_query_mode enabled
39 Y parallel_dml_mode disabled
40 Y parallel_ddl_mode enabled
41 Y optimizer_mode all_rows
42 Y sqlstat_enabled false
43 Y _optimizer_percent_parallel 101
44 Y _always_anti_join choose
45 Y _always_semi_join choose
46 Y _optimizer_mode_force true
47 Y _partition_view_enabled true
48 Y _always_star_transformation false
49 Y _query_rewrite_or_error false
50 Y _hash_join_enabled true
51 Y cursor_sharing exact
52 Y star_transformation_enabled false
53 Y _optimizer_cost_model choose
54 Y _new_sort_cost_estimate true
55 Y _complex_view_merging true
56 Y _unnest_subquery true
57 Y _eliminate_common_subexpr true
58 Y _pred_move_around true
59 Y _convert_set_to_join false
60 Y _push_join_predicate true
# Is
Default Parameter Current
Value
61 Y _push_join_union_view true
62 Y _optim_enhance_nnull_detection true
63 Y _parallel_broadcast_enabled true
64 Y _px_broadcast_fudge_factor 100
65 Y _ordered_nested_loop true
66 Y _no_or_expansion false
67 Y optimizer_index_cost_adj 100
68 Y optimizer_index_caching 0
69 Y _system_index_caching 0
70 Y _disable_datalayer_sampling false
71 Y query_rewrite_enabled true
72 Y query_rewrite_integrity enforced
73 Y _query_cost_rewrite true
74 Y _query_rewrite_2 true
75 Y _query_rewrite_1 true
76 Y _query_rewrite_expression true
77 Y _query_rewrite_jgmigrate true
78 Y _query_rewrite_fpc true
79 Y _query_rewrite_drj true
80 Y _full_pwise_join_enabled true
81 Y _partial_pwise_join_enabled true
82 Y _left_nested_loops_random true
83 Y _improved_row_length_enabled true
84 Y _index_join_enabled true
85 Y _enable_type_dep_selectivity true
86 Y _improved_outerjoin_card true
87 Y _optimizer_adjust_for_nulls true
88 Y _optimizer_degree 0
89 Y _use_column_stats_for_function true
90 Y _subquery_pruning_enabled true
# Is
Default Parameter Current
Value
91 Y _subquery_pruning_mv_enabled false
92 Y _or_expand_nvl_predicate true
93 Y _table_scan_cost_plus_one true
94 Y _cost_equality_semi_join true
95 Y _default_non_equality_sel_check true
96 Y _new_initial_join_orders true
97 Y _oneside_colstat_for_equijoins true
98 Y _optim_peek_user_binds true
99 Y _minimal_stats_aggregation true
100 Y _force_temptables_for_gsets false
101 Y workarea_size_policy auto
102 Y _smm_auto_cost_enabled true
103 Y _gs_anti_semi_join_allowed true
104 Y _optim_new_default_join_sel true
105 Y optimizer_dynamic_sampling 2
106 Y _pre_rewrite_push_pred true
107 Y _optimizer_new_join_card_computation true
108 Y _union_rewrite_for_gs yes_gset_mvs
109 Y _generalized_pruning_enabled true
110 Y _optim_adjust_for_part_skews true
111 Y _force_datefold_trunc false
112 Y statistics_level typical
113 Y _optimizer_system_stats_usage true
114 Y skip_unusable_indexes true
115 Y _remove_aggr_subquery true
116 Y _optimizer_push_down_distinct 0
117 Y _dml_monitoring_enabled true
118 Y _optimizer_undo_changes false
119 Y _predicate_elimination_enabled true
120 Y _nested_loop_fudge 100
# Is
Default Parameter Current
Value
121 Y _project_view_columns true
122 Y _local_communication_costing_enabled true
123 Y _local_communication_ratio 50
124 Y _query_rewrite_vop_cleanup true
125 Y _slave_mapping_enabled true
126 Y _optimizer_cost_based_transformation linear
127 Y _optimizer_mjc_enabled true
128 Y _right_outer_hash_enable true
129 Y _spr_push_pred_refspr true
130 Y _optimizer_cache_stats false
131 Y _optimizer_cbqt_factor 50
132 Y _optimizer_squ_bottomup true
133 Y _fic_area_size 131072
134 Y _optimizer_skip_scan_enabled true
135 Y _optimizer_cost_filter_pred false
136 Y _optimizer_sortmerge_join_enabled true
137 Y _optimizer_join_sel_sanity_check true
138 Y _mmv_query_rewrite_enabled true
139 Y _bt_mmv_query_rewrite_enabled true
140 Y _add_stale_mv_to_dependency_list true
141 Y _distinct_view_unnesting false
142 Y _optimizer_dim_subq_join_sel true
143 Y _optimizer_disable_strans_sanity_checks 0
144 Y _optimizer_compute_index_stats true
145 Y _push_join_union_view2 true
146 Y _optimizer_ignore_hints false
147 Y _optimizer_random_plan 0
148 Y _query_rewrite_setopgrw_enable true
149 Y _optimizer_correct_sq_selectivity true
150 Y _disable_function_based_index false
# Is
Default Parameter Current
Value
151 Y _optimizer_join_order_control 3
152 Y _optimizer_cartesian_enabled true
153 Y _optimizer_starplan_enabled true
154 Y _extended_pruning_enabled true
155 Y _optimizer_push_pred_cost_based true
156 Y _sql_model_unfold_forloops run_time
157 Y _enable_dml_lock_escalation false
158 Y _bloom_filter_enabled true
159 Y _update_bji_ipdml_enabled 0
160 Y _optimizer_extended_cursor_sharing udo
161 Y _dm_max_shared_pool_pct 1
162 Y _optimizer_cost_hjsmj_multimatch true
163 Y _optimizer_transitivity_retain true
164 Y _px_pwg_enabled true
165 Y _optimizer_join_elimination_enabled true
166 Y flashback_table_rpi non_fbt
167 Y _optimizer_cbqt_no_size_restriction true
168 Y _optimizer_enhanced_filter_push true
169 Y _optimizer_filter_pred_pullup true
170 Y _rowsrc_trace_level 0
171 Y _simple_view_merging true
172 Y _optimizer_rownum_pred_based_fkr true
173 Y _optimizer_better_inlist_costing all
174 Y _optimizer_self_induced_cache_cost false
175 Y _optimizer_min_cache_blocks 10
176 Y _optimizer_or_expansion depth
177 Y _optimizer_order_by_elimination_enabled true
178 Y _optimizer_outer_to_anti_enabled true
179 Y _selfjoin_mv_duplicates true
180 Y _dimension_skip_null true
# Is
Default Parameter Current
Value
181 Y _force_rewrite_enable false
182 Y _optimizer_star_tran_in_with_clause true
183 Y _optimizer_complex_pred_selectivity true
184 Y _optimizer_connect_by_cost_based true
185 Y _gby_hash_aggregation_enabled true
186 Y _globalindex_pnum_filter_enabled true
187 Y _fix_control_key 0
188 Y _optimizer_skip_scan_guess false
189 Y _enable_row_shipping false
190 Y _row_shipping_threshold 80
191 Y _row_shipping_explain false
192 Y _optimizer_rownum_bind_default 10
193 Y _first_k_rows_dynamic_proration true
194 Y _px_ual_serial_input true
195 Y _optimizer_native_full_outer_join off
196 Y _optimizer_star_trans_min_cost 0
197 Y _optimizer_star_trans_min_ratio 0
198 Y _optimizer_fkr_index_cost_bias 10
199 Y _optimizer_connect_by_combine_sw true
200 Y _optimizer_use_subheap true
201 Y _optimizer_or_expansion_subheap true
202 Y _optimizer_sortmerge_join_inequality true
203 Y _optimizer_use_histograms true
204 Y _optimizer_enable_density_improvements false -
To reduce execution time of CJ30,CJ32,CJ36,CJ35,CJ40
Dear experts,
We are having about 500 WBS under one Project definition ,
when ever we try to allot budget in CJ30, Release budget in CJ32, give supplement , withdraw amount from any of the WBS it takes lot of time ( around 2-3 hrs for each ).
please help us out , please also let us know if any work around is available
Thanks and regards
s.sinhaHi Sanjiv,
We are also facing the same problem in releaseing budget. Could you please let me know the SAP note & patch you have applied to rectify the problem.
Thanks in advance
Pulla Rao M -
Hello,
I hav a procedure which consists of select and insert statements(includes Union, Minus, DataType conversions etc.). Three tables of around 27 fields each, are involved in procedure. Table has around 87-90 lakhs of records. This procedure is taking around 7-8 hours for execution.
There is another almost exactly same procedure with tables of almost same fields, takes less than 5 minutes for execution. How can I optimize the previous procedure so that execution time is reduced.
Thanks.Table has around 87-90 lakhs of records. 1 lakh is 100,000 records.
How can I optimize the previous procedure so that execution time is reduced.Without even knowing how the procedure looks, we can't comment or even able to help you. Apart from the number of columns and rows, we don't have any other information regarding your procedure or data or index.
Please elaborate so that anyone can help you.
Cheers
Sarma. -
Procedure/Function execution time
I want to get my procedure/function total execution time which is running inside of application.
I think that I can use PLSQL_EXEC_TIME column of v$sql time. Please confirm this if I can or not.Hi;
Please see:
http://www.orafaq.com/maillist/oracle-l/2004/01/27/0522.htm
http://www.dbforums.com/microsoft-sql-server/1625184-how-catch-stored-procedure-execution-time.html
http://www.geekinterview.com/talk/9466-procedure-execution-time.html
Regard
Helios
Maybe you are looking for
-
I am about to spend some more money and get a remote for my Vision:M. I am pretty sure this one is compatible with it, but I am not sure as no where does it mention that it is compatible with it. This one! I remember reading that the remote from the
-
Correlation in Oracle Discoverer
Hi, I know how to calculate correlation in Oracle discoverer plus using calculations but is there a way for us to give the users the ability to drag drop the variable they want to see the correlation between in viewer. So for example if the user want
-
How do I connect the iPhone 4S or 5 to wifi?
I was able to connect my Mac book pro and iPad but the iPhones will not connect. I can see the network and enter the password but I never get the check mark. I am able to connect to my old linksys with no problem.
-
Understanding database driver loading
Hi This question is to clarify my understanding When your vendor writes a drivers for a database Is it a requirement that he creates a instance of the driver and register it with the DriverManager like so class MyDriver implements Driver{ static{
-
It won't let me download itunes
Every time i try to download Itunes it comes with a error message