Forms-Performance problem
I running Portal version 3.0.8.9.8 on Sun Solaris and I have perfomence problem when running forms. I have created a form against emp table and it takes over one minute to open the form. When I try to run a report against the same table it only takes a second to open and execute the query.
Does anyone have solution?
null
Hi all,
First, regarding 3.0.8 performance degradation, it is BUG # 1721741, the workaround:
Create 2 additional indexes:
CREATE INDEX WWA_MODULE_BINDINGS_IDX1
ON WWA_MODULE_BINDINGS$(
SUBSCRIBER_ID,
MODULE_ID,
MODULE_VERSION,
MODULE_BLOCK_ID,
MODULE_ATTR_ID)
CREATE INDEX WWA_MODULE_LOV_BINDINGS_IDX1
ON WWA_MODULE_LOV_BINDINGS$(
SUBSCRIBER_ID,
MODULE_ID,
MODULE_VERSION,
MODULE_BLOCK_ID,
MODULE_ATTR_ID)
Those indexes are missing in the standard fresh install but present if you run an upgrade from versions 3.0.6 or 3.0.7.
*****!!!!! Please note: This workaround can be applied ONLY to Portal forms version
3.0.8.9.8. Earlier versions of the Portal do not need those indexes !!!!!******
This bug is fixed in 3.0.9.
Now, 3.0.7 performance problems:
Is this normal?
No.
Is there anything that I can change to speed this up?
That's what I'm trying to figure out. Can you provide me with as much details as possible about your slow forms? Anything - form types (MD, forms on tables) any remote DB tables involved?, # of fields in the form?
Is there an index missing in the PORTAL30 schema?
No. Not in 3.0.7.
The more columns in the underlying table the longer the form takes to appear,
is this a general rule of thumb?
Yes.
Thanks,
Dmitry
Similar Messages
-
Forms performance problem on the web, using webutil.
When starting the webutil-demoform on the Application Server,
webutils eight javabeans is loaded in 1 second.
I'm using &WebUtilLogging=Console&WebUtilLoggingDetail=Detailed for logging this.
When starting the same form from client the beans is loaded in ~30-40seconds.
Any suggestions to figure out why?Problem solved!
Don't use the IP-address in the URL, use hostname or add an entry in your hostfile on the client. http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=5092063
Metalink
Note:402180.1 Initial Loading of Webutil Forms Are Slow
Note 356190.1 Performance Problems in Forms with Webutil 1.0.6 for Intranet Web Clients -
Hiring Adobe Form-Performance problem
Hello,
We have developed a hiring Adobe form using HCM F & P. It has 8 pages, many user events. It gives the user option to enter
all infotypes used in hiring process. Now the issue is with the performance. The form is taking around 40 seconds to launch
and to do any user event. Let me know if you know of any method to improve the performance.
Is it possible to work with the form section by section, initially first page gets loaded, then on click of a button next page is loaded
like that. And when we do user event is it possible not to submit entire 8 pages to the backend and only submit the
required section.
Let me know if you have any idea.
Thanks!
AravindI completely agree with Chris.
We developed a very complex AIF that would have been much easier to develop in WDA, but the PM wanted a nicely designed UI for the users. We spent months on this process, when the same thing could have been done in a few weeks. W
There are a number of limitations in AIF that are available to you in WDA - it will make youre life simpler to take advantage of them and keep AIF for something less complex -
Performance problem running forms on a VPN
Overall performance is OK
I have one form with a performance problem on insert (Inserting 1 record takes about 1 minute)
When I run the same form in our LAN-environment, there is no performance
problem.
It's on a table with a lot of fields, among them a lot of look-up fields (but
most of them are validated on entry)
On my modem, I see a lot of switching Send-Receive (which I wouldn't expect
when inserting 1 record)
nullI guess, the amount of memory is the problem, in case of LAN, you're client's memory is being used, in case of web, your web servers memory is being used. Try to increase the memory to it which would buffer your data before accessing the modem, so your operating system would decide when to send the data and when to not to send the data, in this case, you wont see lots of flickering in your modem's switch. Hope this would trigger something in your mind to check the parameters defined in the ora.ini file and web server parameters etc etc etc
null -
Returning multiple values from a called tabular form(performance issue)
I hope someone can help with this.
I have a form that calls another form to display a multiple column tabular list of values(needs to allow for user sorting so could not use a LOV).
The user selects one or more records from the list by using check boxes. In order to detect the records selected I loop through the block looking for boxes checked off and return those records to the calling form via a PL/SQL table.
The form displaying the tabular list loads quickly(about 5000 records in the base table). However when I select one or more values from the table and return back to the calling form, it takes a while(about 3-4 minutes) to return to the called form with the selected values.
I guess it is going through the block(all 5000 records) looking for boxes checked off and that is what is causing the noticeable pause.
Is this normal given the data volumes I have or are there any other perhaps better techniques or tricks I could use to improve performance. I am using Forms6i.
Sorry for being so long-winded and thanks in advance for any help.Try writing to your PL/SQL table when the user selects (or remove when deselect) by usuing a when-checkbox-changed trigger. This will eliminate the need for you top loop through a block with 5000 records and should improve your performance.
I am not aware of any performance issues with PL/SQL tables in forms, but if you still have slow performance try using a shared record-group instead. I have used these in the past for exactly the same thing and had no performance problems.
Hope this helps,
Candace Stover
Forms Product Management -
Report program Performance problem
Hi All,
one object is taking 30hr for executing.some one develped this in 1998 but this time it is a big Performance problem.please some one helep what to do i am giving that code.
*--DOCUMENTATION--
Programe written by : 31.03.1998 .
Purpose : this programe updates the car status into the table zsdtab1
This programe is to be schedule in the backgroud periodically .
Querries can be fired on the table zsdtab1 to get the details of the
Car .
This programe looks at the changes made in the material master from
last updated date and the new entries in material master and updates
the tables zsdtab1 .
Changes in the Sales Order are not taken into account .
To get a fresh data set the value of zupddate in table ZSTATUS as
01.01.1998 . All the data will be refreshed from that date .
Program Changed on 23/7/2001 after version upgrade 46b by jyoti
Addition of New tables for Ibase
tables used -
tables : mara , " Material master
ausp , " Characteristics table .
zstatus , " Last updated status table .
zsdtab1 , " Central database table to be maintained .
vbap , " Sales order header table .
vbak , " Sales order item table .
kna1 , " Customer master .
vbrk ,
vbrp ,
bkpf ,
bseg ,
mseg ,
mkpf ,
vbpa ,
vbfa ,
t005t . " Country details tabe .
--NEW TABLES ADDEDFOR VERSION 4.6B--
tables : ibsymbol ,ibin , ibinvalues .
data : vatinn like ibsymbol-atinn , vatwrt like ibsymbol-atwrt ,
vatflv like ibsymbol-atflv .
*--types definition--
types : begin of mara_itab_type ,
matnr like mara-matnr ,
cuobf like mara-cuobf ,
end of mara_itab_type ,
begin of ausp_itab_type ,
atinn like ausp-atinn ,
atwrt like ausp-atwrt ,
atflv like ausp-atflv ,
end of ausp_itab_type .
data : mara_itab type mara_itab_type occurs 500 with header line ,
zsdtab1_itab like zsdtab1 occurs 500 with header line ,
ausp_itab type ausp_itab_type occurs 500 with header line ,
last_date type d ,
date type d .
data: length type i.
clear mara_itab . refresh mara_itab .
clear zsdtab1_itab . refresh zsdtab1_itab .
select single zupddate into last_date from zstatus
where programm = 'ZSDDET01' .
select matnr cuobf into (mara_itab-matnr , mara_itab-cuobf) from mara
where mtart eq 'FERT' or mtart = 'ZCBU'.
where MATNR IN MATERIA
and ERSDA IN C_Date
and MTART in M_TYP.
append mara_itab .
endselect .
loop at mara_itab.
clear zsdtab1_itab .
zsdtab1_itab-commno = mara_itab-matnr .
Get the detailed data into internal table ausp_itab .----------->>>
clear ausp_itab . refresh ausp_itab .
--change starts--
select atinn atwrt atflv into (ausp_itab-atinn , ausp_itab-atwrt ,
ausp_itab-atflv) from ausp
where objek = mara_itab-matnr .
append ausp_itab .
endselect .
clear ausp_itab .
select atinn atwrt atflv into (ausp_itab-atinn , ausp_itab-atwrt ,
ausp_itab-atflv) from ibin as a inner join ibinvalues as b
on ain_recno = bin_recno
inner join ibsymbol as c
on bsymbol_id = csymbol_id
where a~instance = mara_itab-cuobf .
append ausp_itab .
endselect .
----CHANGE ENDS HERE -
sort ausp_itab by atwrt.
loop at ausp_itab .
clear date .
case ausp_itab-atinn .
when '0000000094' .
zsdtab1_itab-model = ausp_itab-atwrt . " model .
when '0000000101' .
zsdtab1_itab-drive = ausp_itab-atwrt . " drive
when '0000000095' .
zsdtab1_itab-converter = ausp_itab-atwrt . "converter
when '0000000096' .
zsdtab1_itab-transmssn = ausp_itab-atwrt . "transmission
when '0000000097' .
zsdtab1_itab-colour = ausp_itab-atwrt . "colour
when '0000000098' .
zsdtab1_itab-ztrim = ausp_itab-atwrt . "trim
when '0000000103' .
*=========Sujit 14-Mar-2006
IF AUSP_ITAB-ATWRT(3) EQ 'WDB' OR AUSP_ITAB-ATWRT(3) EQ 'WDD'
OR AUSP_ITAB-ATWRT(3) EQ 'WDC' OR AUSP_ITAB-ATWRT(3) EQ 'KPD'.
ZSDTAB1_ITAB-CHASSIS_NO = AUSP_ITAB-ATWRT+3(14).
ELSE.
ZSDTAB1_ITAB-CHASSIS_NO = AUSP_ITAB-ATWRT . "chassis no
ENDIF.
zsdtab1_itab-chassis_no = ausp_itab-atwrt . "chassis no
*=========14-Mar-2006
when '0000000166' .
----25.05.04
length = strlen( ausp_itab-atwrt ).
if length < 15. "***aded by patil
zsdtab1_itab-engine_no = ausp_itab-atwrt . "ENGINE NO
else.
zsdtab1_itab-engine_no = ausp_itab-atwrt+13(14)."Aded on 21.05.04 patil
endif.
----25.05.04
when '0000000104' .
zsdtab1_itab-body_no = ausp_itab-atwrt . "BODY NO
when '0000000173' . "21.06.98
zsdtab1_itab-cockpit = ausp_itab-atwrt . "COCKPIT NO . "21.06.98
when '0000000102' .
zsdtab1_itab-dest = ausp_itab-atwrt . "destination
when '0000000105' .
zsdtab1_itab-airbag = ausp_itab-atwrt . "AIRBAG
when '0000000110' .
zsdtab1_itab-trailer_no = ausp_itab-atwrt . "TRAILER_NO
when '0000000109' .
perform date_convert using ausp_itab-atflv changing date .
zsdtab1_itab-fininspdat = date . "FIN INSP DATE
when '0000000108' .
zsdtab1_itab-entrydate = ausp_itab-atwrt . "ENTRY DATE
when '0000000163' .
zsdtab1_itab-regist_no = ausp_itab-atwrt . "REGIST_NO
when '0000000164' .
zsdtab1_itab-mech_key = ausp_itab-atwrt . "MECH_KEY
when '0000000165' .
zsdtab1_itab-side_ab_rt = ausp_itab-atwrt . "SIDE_AB_RT
when '0000000171' .
zsdtab1_itab-side_ab_lt = ausp_itab-atwrt . "SIDE_AB_LT
when '0000000167' .
zsdtab1_itab-elect_key = ausp_itab-atwrt . "ELECT_KEY
when '0000000168' .
zsdtab1_itab-head_lamp = ausp_itab-atwrt . "HEAD_LAMP
when '0000000169' .
zsdtab1_itab-tail_lamp = ausp_itab-atwrt . "TAIL_LAMP
when '0000000170' .
zsdtab1_itab-vac_pump = ausp_itab-atwrt . "VAC_PUMP
when '0000000172' .
zsdtab1_itab-sd_ab_sn_l = ausp_itab-atwrt . "SD_AB_SN_L
when '0000000174' .
zsdtab1_itab-sd_ab_sn_r = ausp_itab-atwrt . "SD_AB_SN_R
when '0000000175' .
zsdtab1_itab-asrhydunit = ausp_itab-atwrt . "ASRHYDUNIT
when '0000000176' .
zsdtab1_itab-gearboxno = ausp_itab-atwrt . "GEARBOXNO
when '0000000177' .
zsdtab1_itab-battery = ausp_itab-atwrt . "BATTERY
when '0000000178' .
zsdtab1_itab-tyretype = ausp_itab-atwrt . "TYRETYPE
when '0000000179' .
zsdtab1_itab-tyremake = ausp_itab-atwrt . "TYREMAKE
when '0000000180' .
zsdtab1_itab-tyresize = ausp_itab-atwrt . "TYRESIZE
when '0000000181' .
zsdtab1_itab-rr_axle_no = ausp_itab-atwrt . "RR_AXLE_NO
when '0000000183' .
zsdtab1_itab-ff_axl_nor = ausp_itab-atwrt . "FF_AXLE_NO_rt
when '0000000182' .
zsdtab1_itab-ff_axl_nol = ausp_itab-atwrt . "FF_AXLE_NO_lt
when '0000000184' .
zsdtab1_itab-drivairbag = ausp_itab-atwrt . "DRIVAIRBAG
when '0000000185' .
zsdtab1_itab-st_box_no = ausp_itab-atwrt . "ST_BOX_NO
when '0000000186' .
zsdtab1_itab-transport = ausp_itab-atwrt . "TRANSPORT
when '0000000106' .
zsdtab1_itab-trackstage = ausp_itab-atwrt . " tracking stage
when '0000000111' .
perform date_convert using ausp_itab-atflv changing date .
zsdtab1_itab-dat_trk_1 = date . " tracking date for 1.
when '0000000112' .
perform date_convert using ausp_itab-atflv changing date .
zsdtab1_itab-dat_trk_5 = date . " tracking date for 5.
when '0000000113' .
perform date_convert using ausp_itab-atflv changing date .
zsdtab1_itab-dat_trk_10 = date . "tracking date for 10
when '0000000114' .
perform date_convert using ausp_itab-atflv changing date .
zsdtab1_itab-dat_trk_15 = date . "tracking date for 15
when '0000000115' .
perform date_convert using ausp_itab-atflv changing date .
zsdtab1_itab-dat_trk_20 = date . " tracking date for 20
when '0000000116' .
perform date_convert using ausp_itab-atflv changing date .
zsdtab1_itab-dat_trk_25 = date . " tracking date for 25
when '0000000117' .
perform date_convert using ausp_itab-atflv changing date .
zsdtab1_itab-dat_trk_30 = date . "tracking date for 30
when '0000000118' .
perform date_convert using ausp_itab-atflv changing date .
zsdtab1_itab-dat_trk_35 = date . "tracking date for 35
when '0000000119' .
perform date_convert using ausp_itab-atflv changing date .
zsdtab1_itab-dat_trk_40 = date . " tracking date for 40
when '0000000120' .
perform date_convert using ausp_itab-atflv changing date .
zsdtab1_itab-dat_trk_45 = date . " tracking date for 45
when '0000000121' .
perform date_convert using ausp_itab-atflv changing date .
zsdtab1_itab-dat_trk_50 = date . "tracking date for 50
when '0000000122' .
perform date_convert using ausp_itab-atflv changing date .
zsdtab1_itab-dat_trk_55 = date . "tracking date for 55
when '0000000123' .
perform date_convert using ausp_itab-atflv changing date .
zsdtab1_itab-dat_trk_60 = date . " tracking date for 60
when '0000000124' .
perform date_convert using ausp_itab-atflv changing date .
zsdtab1_itab-dat_trk_65 = date . " tracking date for 65
when '0000000125' .
perform date_convert using ausp_itab-atflv changing date .
zsdtab1_itab-dat_trk_70 = date . "tracking date for 70
when '0000000126' .
perform date_convert using ausp_itab-atflv changing date .
zsdtab1_itab-dat_trk_75 = date . "tracking date for 75
when '0000000127' .
perform date_convert using ausp_itab-atflv changing date .
zsdtab1_itab-dat_trk_78 = date . " tracking date for 78
when '0000000203' .
perform date_convert using ausp_itab-atflv changing date .
zsdtab1_itab-dat_trk_79 = date . " tracking date for 79
when '0000000128' .
perform date_convert using ausp_itab-atflv changing date .
zsdtab1_itab-dat_trk_80 = date . " tracking date for 80
when '0000000129' .
perform date_convert using ausp_itab-atflv changing date .
zsdtab1_itab-dat_trk_85 = date . "tracking date for 85
when '0000000130' .
perform date_convert using ausp_itab-atflv changing date .
zsdtab1_itab-dat_trk_90 = date . "tracking date for 90
when '0000000131' .
perform date_convert using ausp_itab-atflv changing date .
zsdtab1_itab-dat_trk_95 = date . "tracking date for 95
when '0000000132' .
perform date_convert using ausp_itab-atflv changing date .
zsdtab1_itab-dattrk_100 = date . " tracking date for100
when '0000000133' .
perform date_convert using ausp_itab-atflv changing date .
zsdtab1_itab-dattrk_110 = date . " tracking date for110
when '0000000134' .
perform date_convert using ausp_itab-atflv changing date .
zsdtab1_itab-dattrk_115 = date . "tracking date for 115
when '0000000135' .
perform date_convert using ausp_itab-atflv changing date .
zsdtab1_itab-dattrk_120 = date . "tracking date for 120
when '0000000136' .
perform date_convert using ausp_itab-atflv changing date .
zsdtab1_itab-dattrk_105 = date . "tracking date for 105
when '0000000137' .
perform date_convert using ausp_itab-atflv changing date .
zsdtab1_itab-pdt_tk_1 = date . "plan trk date for 1
when '0000000138' .
perform date_convert using ausp_itab-atflv changing date .
zsdtab1_itab-pdt_tk_5 = date . "plan trk date for 5
when '0000000139' .
perform date_convert using ausp_itab-atflv changing date .
zsdtab1_itab-pdt_tk_10 = date . "plan trk date for 10
when '0000000140' .
perform date_convert using ausp_itab-atflv changing date .
zsdtab1_itab-pdt_tk_15 = date . "plan trk date for 15
when '0000000141' .
perform date_convert using ausp_itab-atflv changing date .
zsdtab1_itab-pdt_tk_20 = date . "plan trk date for 20
when '0000000142' .
perform date_convert using ausp_itab-atflv changing date .
zsdtab1_itab-pdt_tk_25 = date . "plan trk date for 25
when '0000000143' .
perform date_convert using ausp_itab-atflv changing date .
zsdtab1_itab-pdt_tk_30 = date . "plan trk date for 30
when '0000000144' .
perform date_convert using ausp_itab-atflv changing date .
zsdtab1_itab-pdt_tk_35 = date . "plan trk date for 35
when '0000000145' .
perform date_convert using ausp_itab-atflv changing date .
zsdtab1_itab-pdt_tk_40 = date . "plan trk date for 40
when '0000000146' .
perform date_convert using ausp_itab-atflv changing date .
zsdtab1_itab-pdt_tk_45 = date . "plan trk date for 45
when '0000000147' .
perform date_convert using ausp_itab-atflv changing date .
zsdtab1_itab-pdt_tk_50 = date . "plan trk date for 50
when '0000000148' .
perform date_convert using ausp_itab-atflv changing date .
zsdtab1_itab-pdt_tk_55 = date . "plan trk date for 55
when '0000000149' .
perform date_convert using ausp_itab-atflv changing date .
zsdtab1_itab-pdt_tk_60 = date . "plan trk date for 60
when '0000000150' .
perform date_convert using ausp_itab-atflv changing date .
zsdtab1_itab-pdt_tk_65 = date . "plan trk date for 65
when '0000000151' .
perform date_convert using ausp_itab-atflv changing date .
zsdtab1_itab-pdt_tk_70 = date . "plan trk date for 70
when '0000000152' .
perform date_convert using ausp_itab-atflv changing date .
zsdtab1_itab-pdt_tk_75 = date . "plan trk date for 75
when '0000000153' .
perform date_convert using ausp_itab-atflv changing date .
zsdtab1_itab-pdt_tk_78 = date . "plan trk date for 78
when '0000000202' .
perform date_convert using ausp_itab-atflv changing date .
zsdtab1_itab-pdt_tk_79 = date . "plan trk date for 79
when '0000000154' .
perform date_convert using ausp_itab-atflv changing date .
zsdtab1_itab-pdt_tk_80 = date . "plan trk date for 80
when '0000000155' .
perform date_convert using ausp_itab-atflv changing date .
zsdtab1_itab-pdt_tk_85 = date . "plan trk date for 85
when '0000000156' .
perform date_convert using ausp_itab-atflv changing date .
zsdtab1_itab-pdt_tk_90 = date . "plan trk date for 90
when '0000000157' .
perform date_convert using ausp_itab-atflv changing date .
zsdtab1_itab-pdt_tk_95 = date . "plan trk date for 95
when '0000000158' .
perform date_convert using ausp_itab-atflv changing date .
zsdtab1_itab-pdt_tk_100 = date . "plan trk date for 100
when '0000000159' .
perform date_convert using ausp_itab-atflv changing date .
zsdtab1_itab-pdt_tk_105 = date . "plan trk date for 105
when '0000000160' .
perform date_convert using ausp_itab-atflv changing date .
zsdtab1_itab-pdt_tk_110 = date . "plan trk date for 110
when '0000000161' .
perform date_convert using ausp_itab-atflv changing date .
zsdtab1_itab-pdt_tk_115 = date . "plan trk date for 115
when '0000000162' .
perform date_convert using ausp_itab-atflv changing date .
zsdtab1_itab-pdt_tk_120 = date . "plan trk date for 120
********Additional fields / 24.05.98**********************************
when '0000000099' .
case ausp_itab-atwrt .
when '540' .
zsdtab1_itab-roll_blind = 'X' .
when '482' .
zsdtab1_itab-ground_clr = 'X' .
when '551' .
zsdtab1_itab-anti_theft = 'X' .
when '882' .
zsdtab1_itab-anti_tow = 'X' .
when '656' .
zsdtab1_itab-alloy_whel = 'X' .
when '265' .
zsdtab1_itab-del_class = 'X' .
when '280' .
zsdtab1_itab-str_wheel = 'X' .
when 'CDC' .
zsdtab1_itab-cd_changer = 'X' .
when '205' .
zsdtab1_itab-manual_eng = 'X' .
when '273' .
zsdtab1_itab-conn_handy = 'X' .
when '343' .
zsdtab1_itab-aircleaner = 'X' .
when '481' .
zsdtab1_itab-metal_sump = 'X' .
when '533' .
zsdtab1_itab-speaker = 'X' .
when '570' .
zsdtab1_itab-arm_rest = 'X' .
when '580' .
zsdtab1_itab-aircond = 'X' .
when '611' .
zsdtab1_itab-exit_light = 'X' .
when '613' .
zsdtab1_itab-headlamp = 'X' .
when '877' .
zsdtab1_itab-readlamp = 'X' .
when '808' .
zsdtab1_itab-code_ckd = 'X' .
when '708' .
zsdtab1_itab-del_prt_lc = 'X' .
when '593' .
zsdtab1_itab-ins_glass = 'X' .
when '955' .
zsdtab1_itab-zelcl = 'Elegance' .
when '593' .
zsdtab1_itab-zelcl = 'Classic' .
endcase .
endcase .
endloop .
*--Update the sales data .--
perform get_sales_order using mara_itab-matnr .
perform get_cartype using mara_itab-matnr .
append zsdtab1_itab .
endloop.
<<<
loop at zsdtab1_itab .
if zsdtab1_itab-cartype <> 'W-203'
or zsdtab1_itab-cartype <> 'W-210'
or zsdtab1_itab-cartype <> 'W-211'.
clear zsdtab1_itab-zelcl.
endif.
SELECT SINGLE * FROM ZSDTAB1 WHERE COMMNO = MARA_ITAB-MATNR .
select single * from zsdtab1 where commno = zsdtab1_itab-commno.
if sy-subrc <> 0 .
insert into zsdtab1 values zsdtab1_itab .
else .
update zsdtab1 set :vbeln = zsdtab1_itab-vbeln
bill_doc = zsdtab1_itab-bill_doc
dest = zsdtab1_itab-dest
lgort = zsdtab1_itab-lgort
ship_tp = zsdtab1_itab-ship_tp
country = zsdtab1_itab-country
kunnr = zsdtab1_itab-kunnr
vkbur = zsdtab1_itab-vkbur
customer = zsdtab1_itab-customer
city = zsdtab1_itab-city
region = zsdtab1_itab-region
model = zsdtab1_itab-model
drive = zsdtab1_itab-drive
converter = zsdtab1_itab-converter
transmssn = zsdtab1_itab-transmssn
colour = zsdtab1_itab-colour
ztrim = zsdtab1_itab-ztrim
commno = zsdtab1_itab-commno
trackstage = zsdtab1_itab-trackstage
chassis_no = zsdtab1_itab-chassis_no
engine_no = zsdtab1_itab-engine_no
body_no = zsdtab1_itab-body_no
cockpit = zsdtab1_itab-cockpit
airbag = zsdtab1_itab-airbag
trailer_no = zsdtab1_itab-trailer_no
fininspdat = zsdtab1_itab-fininspdat
entrydate = zsdtab1_itab-entrydate
regist_no = zsdtab1_itab-regist_no
mech_key = zsdtab1_itab-mech_key
side_ab_rt = zsdtab1_itab-side_ab_rt
side_ab_lt = zsdtab1_itab-side_ab_lt
elect_key = zsdtab1_itab-elect_key
head_lamp = zsdtab1_itab-head_lamp
tail_lamp = zsdtab1_itab-tail_lamp
vac_pump = zsdtab1_itab-vac_pump
sd_ab_sn_l = zsdtab1_itab-sd_ab_sn_l
sd_ab_sn_r = zsdtab1_itab-sd_ab_sn_r
asrhydunit = zsdtab1_itab-asrhydunit
gearboxno = zsdtab1_itab-gearboxno
battery = zsdtab1_itab-battery
tyretype = zsdtab1_itab-tyretype
tyremake = zsdtab1_itab-tyremake
tyresize = zsdtab1_itab-tyresize
rr_axle_no = zsdtab1_itab-rr_axle_no
ff_axl_nor = zsdtab1_itab-ff_axl_nor
ff_axl_nol = zsdtab1_itab-ff_axl_nol
drivairbag = zsdtab1_itab-drivairbag
st_box_no = zsdtab1_itab-st_box_no
transport = zsdtab1_itab-transport
OPTIONS-
roll_blind = zsdtab1_itab-roll_blind
ground_clr = zsdtab1_itab-ground_clr
anti_theft = zsdtab1_itab-anti_theft
anti_tow = zsdtab1_itab-anti_tow
alloy_whel = zsdtab1_itab-alloy_whel
del_class = zsdtab1_itab-del_class
str_wheel = zsdtab1_itab-str_wheel
cd_changer = zsdtab1_itab-cd_changer
manual_eng = zsdtab1_itab-manual_eng
conn_handy = zsdtab1_itab-conn_handy
aircleaner = zsdtab1_itab-aircleaner
metal_sump = zsdtab1_itab-metal_sump
speaker = zsdtab1_itab-speaker
arm_rest = zsdtab1_itab-arm_rest
aircond = zsdtab1_itab-aircond
exit_light = zsdtab1_itab-exit_light
headlamp = zsdtab1_itab-headlamp
readlamp = zsdtab1_itab-readlamp
code_ckd = zsdtab1_itab-code_ckd
del_prt_lc = zsdtab1_itab-del_prt_lc
ins_glass = zsdtab1_itab-ins_glass
dat_trk_1 = zsdtab1_itab-dat_trk_1
dat_trk_5 = zsdtab1_itab-dat_trk_5
dat_trk_10 = zsdtab1_itab-dat_trk_10
dat_trk_15 = zsdtab1_itab-dat_trk_15
dat_trk_20 = zsdtab1_itab-dat_trk_20
dat_trk_25 = zsdtab1_itab-dat_trk_25
dat_trk_30 = zsdtab1_itab-dat_trk_30
dat_trk_35 = zsdtab1_itab-dat_trk_35
dat_trk_40 = zsdtab1_itab-dat_trk_40
dat_trk_45 = zsdtab1_itab-dat_trk_45
dat_trk_50 = zsdtab1_itab-dat_trk_50
dat_trk_55 = zsdtab1_itab-dat_trk_55
dat_trk_60 = zsdtab1_itab-dat_trk_60
dat_trk_65 = zsdtab1_itab-dat_trk_65
dat_trk_70 = zsdtab1_itab-dat_trk_70
dat_trk_75 = zsdtab1_itab-dat_trk_75
dat_trk_78 = zsdtab1_itab-dat_trk_78
dat_trk_79 = zsdtab1_itab-dat_trk_79
dat_trk_80 = zsdtab1_itab-dat_trk_80
dat_trk_85 = zsdtab1_itab-dat_trk_85
dat_trk_90 = zsdtab1_itab-dat_trk_90
dat_trk_95 = zsdtab1_itab-dat_trk_95
dattrk_100 = zsdtab1_itab-dattrk_100
dattrk_105 = zsdtab1_itab-dattrk_105
dattrk_110 = zsdtab1_itab-dattrk_110
dattrk_115 = zsdtab1_itab-dattrk_115
dattrk_120 = zsdtab1_itab-dattrk_120
pdt_tk_1 = zsdtab1_itab-pdt_tk_1
pdt_tk_5 = zsdtab1_itab-pdt_tk_5
pdt_tk_10 = zsdtab1_itab-pdt_tk_10
pdt_tk_15 = zsdtab1_itab-pdt_tk_15
pdt_tk_20 = zsdtab1_itab-pdt_tk_20
pdt_tk_25 = zsdtab1_itab-pdt_tk_25
pdt_tk_30 = zsdtab1_itab-pdt_tk_30
pdt_tk_35 = zsdtab1_itab-pdt_tk_35
pdt_tk_40 = zsdtab1_itab-pdt_tk_40
pdt_tk_45 = zsdtab1_itab-pdt_tk_45
pdt_tk_50 = zsdtab1_itab-pdt_tk_50
pdt_tk_55 = zsdtab1_itab-pdt_tk_55
pdt_tk_60 = zsdtab1_itab-pdt_tk_60
pdt_tk_65 = zsdtab1_itab-pdt_tk_65
pdt_tk_70 = zsdtab1_itab-pdt_tk_70
pdt_tk_75 = zsdtab1_itab-pdt_tk_75
pdt_tk_78 = zsdtab1_itab-pdt_tk_78
pdt_tk_79 = zsdtab1_itab-pdt_tk_79
pdt_tk_80 = zsdtab1_itab-pdt_tk_80
pdt_tk_85 = zsdtab1_itab-pdt_tk_85
pdt_tk_90 = zsdtab1_itab-pdt_tk_90
pdt_tk_95 = zsdtab1_itab-pdt_tk_95
pdt_tk_100 = zsdtab1_itab-pdt_tk_100
pdt_tk_105 = zsdtab1_itab-pdt_tk_105
pdt_tk_110 = zsdtab1_itab-pdt_tk_110
pdt_tk_115 = zsdtab1_itab-pdt_tk_115
pdt_tk_120 = zsdtab1_itab-pdt_tk_120
cartype = zsdtab1_itab-cartype
zelcl = zsdtab1_itab-zelcl
excise_no = zsdtab1_itab-excise_no
where commno = zsdtab1_itab-commno .
Update table .---------<<<
endif .
endloop .
perform update_excise_date .
perform update_post_goods_issue_date .
perform update_time.
*///////////////////// end of programe /////////////////////////////////
Get sales data -
form get_sales_order using matnr .
data : corr_vbeln like vbrk-vbeln .
ADDED BY ADITYA / 22.06.98 **************************************
perform get_order using matnr .
select single vbeln lgort into (zsdtab1_itab-vbeln , zsdtab1_itab-lgort)
from vbap where matnr = matnr . " C-22.06.98
from vbap where vbeln = zsdtab1_itab-vbeln .
if sy-subrc = 0 .
************Get the Excise No from Allocation Field*******************
select single * from zsdtab1 where commno = matnr .
if zsdtab1-excise_no = '' .
select * from vbrp where matnr = matnr .
select single vbeln into corr_vbeln from vbrk where
vbeln = vbrp-vbeln and vbtyp = 'M'.
if sy-subrc eq 0.
select single * from vbrk where vbtyp = 'N'
and sfakn = corr_vbeln. "cancelled doc.
if sy-subrc ne 0.
select single * from vbrk where vbeln = corr_vbeln.
if sy-subrc eq 0.
data : year(4) .
move sy-datum+0(4) to year .
select single * from bkpf where awtyp = 'VBRK' and awkey = vbrk-vbeln
and bukrs = 'MBIL' and gjahr = year .
if sy-subrc = 0 .
select single * from bseg where bukrs = 'MBIL' and belnr = bkpf-belnr
and gjahr = year and koart = 'D' and
shkzg = 'S' .
zsdtab1_itab-excise_no = bseg-zuonr .
endif .
endif.
endif.
endif.
endselect.
endif .
select single kunnr vkbur into (zsdtab1_itab-kunnr ,
zsdtab1_itab-vkbur) from vbak
where vbeln = zsdtab1_itab-vbeln .
if sy-subrc = 0 .
select single name1 ort01 regio into (zsdtab1_itab-customer ,
zsdtab1_itab-city , zsdtab1_itab-region) from kna1
where kunnr = zsdtab1_itab-kunnr .
endif.
Get Ship to Party **************************************************
select single * from vbpa where vbeln = zsdtab1_itab-vbeln and
parvw = 'WE' .
if sy-subrc = 0 .
zsdtab1_itab-ship_tp = vbpa-kunnr .
Get Destination Country of Ship to Party .************
select single * from kna1 where kunnr = vbpa-kunnr .
if sy-subrc = 0 .
select single * from t005t where land1 = kna1-land1
and spras = 'E' .
if sy-subrc = 0 .
zsdtab1_itab-country = t005t-landx .
endif .
endif .
endif .
endif .
endform. " GET_SALES
form update_time.
update zstatus set zupddate = sy-datum
uzeit = sy-uzeit
where programm = 'ZSDDET01' .
endform. " UPDATE_TIME
*& Form DATE_CONVERT
form date_convert using atflv changing date .
data : dt(8) , dat type i .
dat = atflv .
dt = dat .
date = dt .
endform. " DATE_CONVERT
*& Form UPDATE_POST_GOODS_ISSUE_DATE
form update_post_goods_issue_date .
types : begin of itab1_type ,
mblnr like mseg-mblnr ,
budat like mkpf-budat ,
end of itab1_type .
data : itab1 type itab1_type occurs 10 with header line .
loop at mara_itab .
select single * from zsdtab1 where commno = mara_itab-matnr .
if sy-subrc = 0 and zsdtab1-postdate = '00000000' .
refresh itab1 . clear itab1 .
select * from mseg where matnr = mara_itab-matnr and bwart = '601' .
itab1-mblnr = mseg-mblnr .
append itab1 .
endselect .
loop at itab1 .
select single * from mkpf where mblnr = itab1-mblnr .
if sy-subrc = 0 .
itab1-budat = mkpf-budat .
modify itab1 .
endif .
endloop .
sort itab1 by budat .
read table itab1 index 1 .
if sy-subrc = 0 .
update zsdtab1 set postdate = itab1-budat
where commno = mara_itab-matnr .
endif .
endif .
endloop .
endform. " UPDATE_POST_GOODS_ISSUE_DATE
*& Form UPDATE_EXCISE_DATE
form update_excise_date.
types : begin of itab2_type ,
mblnr like mseg-mblnr ,
budat like mkpf-budat ,
end of itab2_type .
data : itab2 type itab2_type occurs 10 with header line .
loop at mara_itab .
select single * from zsdtab1 where commno = mara_itab-matnr .
if sy-subrc = 0 and zsdtab1-excise_dat = '00000000' .
refresh itab2 . clear itab2 .
select * from mseg where matnr = mara_itab-matnr and
( bwart = '601' or bwart = '311' ) .
itab2-mblnr = mseg-mblnr .
append itab2 .
endselect .
loop at itab2 .
select single * from mkpf where mblnr = itab2-mblnr .
if sy-subrc = 0 .
itab2-budat = mkpf-budat .
modify itab2 .
endif .
endloop .
sort itab2 by budat .
read table itab2 index 1 .
if sy-subrc = 0 .
update zsdtab1 set excise_dat = itab2-budat
where commno = mara_itab-matnr .
endif .
endif .
endloop .
endform. " UPDATE_EXCISE_DATE
form get_order using matnr .
types : begin of itab_type ,
vbeln like vbap-vbeln ,
posnr like vbap-posnr ,
end of itab_type .
data : itab type itab_type occurs 10 with header line .
refresh itab . clear itab .
select * from vbap where matnr = mara_itab-matnr .
itab-vbeln = vbap-vbeln .
itab-posnr = vbap-posnr .
append itab .
endselect .
loop at itab .
select single * from vbak where vbeln = itab-vbeln .
if vbak-vbtyp <> 'C' .
delete itab .
endif .
endloop .
loop at itab .
select single * from vbfa where vbelv = itab-vbeln and
posnv = itab-posnr and vbtyp_n = 'H' .
if sy-subrc = 0 .
delete itab .
endif .
endloop .
clear : zsdtab1_itab-vbeln , zsdtab1_itab-bill_doc .
loop at itab .
zsdtab1_itab-vbeln = itab-vbeln .
select single * from vbfa where vbelv = itab-vbeln and
posnv = itab-posnr and vbtyp_n = 'M' .
if sy-subrc = 0 .
zsdtab1_itab-bill_doc = vbfa-vbeln .
endif .
endloop .
endform .
*& Form GET_CARTYPE
form get_cartype using matnr .
select single * from mara where matnr = matnr .
zsdtab1_itab-cartype = mara-satnr .
endform. " GET_CARTYPEHi,
I have analysed your program and i would like to share following points for better performance of this report :
(a) Use the field Names instead of Select * or Select Single * as if you use the field names it will consume less amount of resources inside the loop as well as you have lot many Select Single * and u r using very big tables like VBAP and many more.
(b) Trace on ST05 which particular query is mostly effecting your system or use ST12 in current mode to trace for less inputs which run the report for 20-30 min so that we get an idea which queries are effecting the system and taking a lot of time.
(c) In Case of internal tables sort the data properly and use binary search for getting the data.
I think this will help.
Thanks and Regards,
Harsh -
Performance problems with File Adapter and XI freeze
Hi NetWeaver XI geeks,
We are deploying a XI based product and encounter some huge performance problems. Here after the scenario and the issues:
- NetWeaver XI 2004
- SAP 4.6c
- Outbound Channel
- No mapping used and only the iDocs Adapter is involved in the pipeline processing
- File Adapter
- message file size < 2Ko
We have zeroed down the problem to Idoc adapters performance.
We are using a file channel and every 15 seconds a file in a valid Idoc format is placed in a folder, Idoc adapter picks up the file from this folder and sends it to the SAP R/3 instance.
For few minutes (approx 5 mins) it works (the CPU usage is less then 20% even if processing time seems huge : <b>5sec/msg</b>) but after this time the application gets blocked and the CPU gets overloaded at 100% (2 processes disp_worker.exe at 50% each).
If we inject several files in the source folder at the same time or if we decrease the time gap (from 15 seconds to 10 seconds) between creation of 2 Idoc files , the process blocks after posting 2-3 docs to SAP R/3.
Could you point us some reasons that could provoke that behavior?
Basically looking for some help in improving performance of the Idoc adapter.
Thanks in advance for your help and regards,
AdalbertHi Bhavesh,
Thanks for your suggestions. We will test...
We wonder if the hardware is not the problem of this extremely poor performance.
Our XI server is:
Windows 2003 Server
Processors: 2x3GHZ
RAM: 4GB (the memory do not soak)
The messages are well formed iDocs = single line INVOICES.
Some posts are talking 2000 messages processed in some seconds... whereas we got 5 sec per message.
Tnanks for your help.
Adalbert -
LR3 "Extra Processing in Develop" Performance Problem
I have been investigating a specific LR3 performance problem. It may explain a small subset of the problems people have reported in the "Why is LR3 So Slow?" thread. I'm starting this thread to focus on this particular problem. I hope others will confirm/refute/refine my findings.
The Problem
In Develop, when I make an adjustment, normally the following happens: The CPU usage (as shown in Activity Monitor's bar graph) jumps to between 50 and 75% for all four cores, the updated image appears, and the CPU usage settles back down. This all happens in less than half a second. Note: this is with the image at the Fit size. However, sometimes I instead get the following after an adjustment: the CPU usage jumps to 50 to 75% for all four cores and the updated image appears as usual, however, instead of settling back down, the CPU usage jumps up to 90 to 100% for all cores and stays there for 3 to 5 seconds before settling down. Thus it appears that LR is doing some kind of "extra processing" since a lot of computation is happening AFTER the updated image has already appeared. I will refer to this problem as "EP". Obviously, when you are getting EP, editing in Develop becomes very balky.
Dependency on ratio between image size and displayed size
It appears that EP only happens when the displayed size of the image (in Fit zoom level and perhaps also Fill zoom level) is above a certain percentage of the actual image size (as currently cropped). Evidence: When editing full 21MP 5D2 images, I don't experience EP. If I crop the 5D2 image fairly significantly, then I can get EP. When editing 10MP images from my Canon S90, I usually get EP for landscape orientation pictures but not for portrait orientation pictures (since in Fit mode, landscape images display at a higher zoom level than portrait images). If I am getting EP, I can eliminate it by sufficiently reducing the size that LR is displaying the image by resizing the LR window smaller, opening additional panels (I normally edit with only the right panel open), displaying the toolbar, etc. It appears that EP is enabled when the displayed image is about 50% or larger w.r.t. the actual image (as currently cropped). For example, EP becomes enabled when a 3648 pixel wide S90 image is displayed at least 17 and 7/8 inches wide on my 100 ppi monitor (i.e. about 1787 pixels).
Dependency on HOW an adjustment is invoked
Even when the displayed image size is large enough w.r.t. the actual image size to enable EP, whether you get it on a given adjustment depends on how you invoke it:
- If you CLICK (i.e. press the mouse button down and quickly release it) on the track of one of the sliders (a technique I use often to make big jumps), EP will happen.
- If you press the mouse button down on a slider handle, drag it to a new position, and quickly release the mouse button), EP will happen
- If you press the mouse button down on a slider handle, drag it to a new position, but continue to hold the mouse button down until the displayed image is updated, EP does NOT happen (either before or after you then release the mouse button).
- If you highlight the numeric field at the end of a slider and use the arrow keys (possibly along with Shift) to increment or decrement the value, EP does NOT happen.
- EP will happen if you resize the LR window such that the displayed image size is above the threshold. (In fact, I determined the threshold by making a series of window width increases until I saw EP indicated by the CPU bar graphs.)
- EP can happen with local adjustment brush applications, but as with the sliders, it depends on HOW you perform the brush stroke. Single click and drags with immediate mouse release cause EP, drags with delayed mouse button release don't.
- Clicking an earlier History state causes EP
- More exploration could be done. For example, I haven't looked at Graduated Filter and Spot Removal adjustments.
My theory of what's happening
With LR2, my understanding is that in Develop mode when the displayed image is below 1:1 zoom level, after an adjustment is invoked, LR calculates the new version of the image to display using a fast, simplified algorithm that doesn't include the more computationally intensive adjustments like Sharpening and Noise Reduction (and perhaps works on a lower rez version of the image with multiple sensels binned together?). It appears that in conditions described above, LR3 calculates the initial, fast image update and then goes on to do the full update of the image, including the computationally intensive adjustments. Evidence: setting Sharpening Amount and Luminance and Color Noise Reduction to zero eliminates EP (or reduces the amount of time it takes to be barely noticeable). I'm not sure whether the displayed image is updated with the results of the extra processing. I think the answer is Yes since when I tried an adjustment of changing Sharpening Amount from 0 to 90, the initial update of the displayed image showed sharpening but after the EP, the displayed image was updated again to show somewhat different sharpening. Perhaps Adobe felt that it would be useful to see the more accurate version of the image when it is at or above 50% zoom. Maybe the UI is supposed to cancel the EP if you start to make another adjustment before it has completed but the canceling doesn't happen unless you invoke the adjustment in one of the ways described above that doesn't cause EP.
Misc
- EP doesn't seem to happen for Process 2003
- As others have mentioned, I'm surprised that LR (both version 2 and 3) in 64bit mode doesn't use more available RAM. I don't think I've seen LR go above 4GB of virtual memory or above 3GB "Real Memory" (as reported by Activity Monitor) even though I have several GB free.
- It should be obvious from the above that if you experience EP, there are workarounds: reduce the size of the displayed image (e.g. by window resizing), invoke adjustments in ways that don't cause EP, turn off Sharpening and Noise Reduction until the end of editing an image.
System specs
First generation Intel Mac Pro with two dual-core CPUs at 2.66 Ghz
OS 10.5.8
21GB RAM
ACR cache on volume striped across 3 internal SATA drives
LR catalog and RAWs on an internal SATA drive
30" HP LP3065 monitor (2560 pixels wide)
NVIDIA GeForce 7300 GTI'm impressed by your thorough analysis.
Clearly, the programmers haven't figured out the best way to do intelligent caching and/or parallel rendering at a reduced size yet.
In my experience reducing the settings in the "Details" panel doesn't help.
What really bugs me is that the lag (or increasing lack of interactiveness) depends on the number of adjustments one has made.
This shouldn't be the case. If a cache is produced then every further adjustment should only cost the effort for that latest adjustment and not include adjustments before it. There are things that stand in the way of straightforward edit applications:
If you work below 1:1 preview, adjustments have to be shown in a reduced form. If you don't have a way to faithfully mimic the adjustments on the reduced size, you have to do them on the original image and then scale down. That's expensive.
To the best of my knowledge LR uses a fixed image pipeline. Hence, independently of the order in which you apply edits, they are always performed in the same fixed order. Say all spot removal operations are done first. If you have a lot of adjustment brush edits and then add a spot removal operation, it means that all the adjustment brush operations have to be replayed each time you do a little adjustment on your spot removal edit.
I believe what you are seeing is mostly related to 1.
I also believe that the way LR currently handles a moderate number of edits is unacceptable and incompatible with the notion that it is usable in a commercial setting for more than trivial edits. I suspect there is something else going on. If everyone saw the deterioration in performance after a number of edits that I see, I don't think LR would be as accepted as it is. Having said that, I've read that the problem of repeated applications of the adjustment brush slowing LR down has existed for a long time. I truly hope that this doesn't mean we'll have to live for it for the foreseeable future.
There are two ways I can see how 2. should be addressed:
combine the effects of a set of operations into one bitmap operation. Instead of replaying all adjustment brush strokes one after the other (speedwise it feels like this is happening), compute a single bitmap operation that combines all effects.
give up the idea that there is an image pipeline with a fixed execution order.
Some might argue that the second point is at odds with the whole idea of parametric editing, but I dispute that. Either edit operations are commutable in which case the order is immaterial, or they are not. If they are not, the user applies the edits in a way as he/she sees fit and will thus compensate for any effect of a changed ordering.
N.B., currently the doctrine of "fixed ordering of edit applications" results in the effect that even if you convert an image into B&W all your adjustment brush edits that applied colour tints will still show through. Reasoning: The user should be able to locally tint a B&W image. I agree with the latter but this could be achieved by only applying those tinting brush strokes that were created after the B&W conversion. All the ones that happened before should only be used to obtain the correct luminance values for the B&W conversion but obviously they shouldn't cause tinted areas.
The above example demonstrates to me that users naturally expect operations to occurr in the order they have been introduced, not in a fixed predefined order. If that principle were followed, I see no reason why the speed of a single edit should depend on the number of edits that were done to the image before.
I hope the programmers can (and the management wants to) address the performance issues. While I find LR usable for pretty modest edits, in no way the performance on my system approaches that would I would expect from an industrial strenght application.
P.S.: Your message reminded me of the following: When I experience serious lag with LR showing the strokes I make with an adjustment brush, it helps to pause a moment after the first click before one starts moving. This allows LR to catch up and then one can see the effect of the application pretty much interactively. Otherwise, there is terrible lag and the feedback where you have brushed an effect comes way too late. -
Performance Problem on Designer Repository
Hello,
We have performance problem on Designer Repository database, I run system statistics, recreate objects, truncate temporary tablespaces, but compile forms runs very slowly, on top sql is this sql statement:
SELECT MAX(1)
FROM I$SDD_WA_CONTEXT CTXT
WHERE CTXT.OBJECT_IVID = :B1
AND CTXT.WORKAREA_IRID = JR_CONTEXT.WORKAREA
AND CTXT.WASTEBASKET = JR_CONTEXT.WASTEBASKET
how optimize this statement?jr_wastebasket.purge_insignificant_versions helps, I drop old versions of forms
Edited by: Vazha_Mantua on Mar 27, 2009 9:24 AM -
Oracle Performance problem in Tru64 Unix
Hello All,
I am having performance problem in Tru6u Unix. Details are mentioned below :
OS: Tru64 Unix
Oracle Version : 8.1.7.4.0
Forms : 6.0
Mode: Oracle Parallel Server
When, developers are trying to save some data using forms, it's taking too much time.
Any hint/idea, how to start tracking the things, will be highly appreciated.
Regards,
Rajeev TomarCheck what are the session waits from v$session_wait and try to tune them.
If possible, get the code and tune the sqls.
Without knowing the application behaviour and other related stuff, no one can simple adice on performance problems.
Jaffar -
Apex 4 tabular form performance
Hey all apex experts,
Having some issues w/ tabular form performance.
Posted below are the results from a debug run recently, I know it is a little tricky to read, was the simplest way I could find to get online.
To highlight the problems, it appears that page is running rather well, with the exception of the line...
*20110609090107.671238 0.38075 15.40215 rows loop: 15 row(s)*
You can see that this record is consuming over 15 seconds of page load, or 97% of the time.
So I need to find out what is consuming so much time, but "rows loop: 15 row(s)" tells me near to nothing.
The query that is behind the tabular form I am not worried about at all, as it easily runs in sub second through any direct db querying method.
The query does contain 8 apex_item calls...
- 2 apex_item.hidden
- 1 apex_item.select_list_from_lov
- 1 apex_item.date_popup2
- 3 apex_item.text
- 1 apex_item.checkbox
I am worried that the performance has to do with the rendering of these items, but I clearly need some assistance.
Any pointers on how to pinpoint the bottleneck?
I am currently running Apex 4.0.1.00.03 on Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - 64bit.
Thanks in advance,
Hayden
Elapsed Execution Message Level
20110609090107.3 0.03996 0.04966 S H O W: application="109" page="19" workspace="" request="" session="640319082941758" 3
20110609090107.3 0.0895 0.00258 Language derived from: FLOW_PRIMARY_LANGUAGE, current browser language: en-us 3
20110609090107.3 0.09203 0.00106 alter session set nls_language="AMERICAN" 3
20110609090107.3 0.09306 0.00067 alter session set nls_territory="AMERICA" 3
20110609090107.3 0.09371 0.00104 NLS: CSV charset=WE8MSWIN1252 3
20110609090107.3 0.09476 0.00067 ...NLS: Set Decimal separator="." 3
20110609090107.3 0.09542 0.00091 ...NLS: Set NLS Group separator="," 3
20110609090107.3 0.09633 0.0009 ...NLS: Set g_nls_date_format="DD-MON-RR" 3
20110609090107.3 0.09723 0.00089 ...NLS: Set g_nls_timestamp_format="DD-MON-RR HH.MI.SSXFF AM" 3
20110609090107.3 0.09811 0.00292 ...NLS: Set g_nls_timestamp_tz_format="DD-MON-RR HH.MI.SSXFF AM TZR" 3
20110609090107.3 0.10109 0.00134 ...Setting session time_zone to -05:00 3
20110609090107.3 0.10241 0.00283 NLS: Language=en-us 3
20110609090107.3 0.10528 0.00874 Application 109, Authentication: CUSTOM2, Page Template: 1427152175619667347 3
20110609090107.4 0.11401 0.00149 ...Session ID 640319082941758 can be used 3
20110609090107.4 0.11547 0.00178 ...Application session: 640319082941758, user=HAYDEN 3
20110609090107.4 0.11724 0.00141 ...Determine if user "HAYDEN" workspace "2120413559142026" can develop application "109" in workspace "2120413559142026" 3
20110609090107.4 0.11864 0.00282 ...Check for session expiration: 3
20110609090107.4 0.12151 0.00281 Session: Fetch session header information 3
20110609090107.4 0.12431 0.00123 ...fetch session state from database 3
20110609090107.4 0.12552 0.00147 fetch items 3
20110609090107.4 0.12699 0.00137 ...fetched 22 session state items 3
20110609090107.4 0.12836 0.00221 Branch point: Before Header 3
20110609090107.4 0.13057 0.00743 Fetch application meta data 3
20110609090107.4 0.13804 0.00183 ...metadata, fetch computations 3
20110609090107.4 0.13985 0.00178 ...metadata, fetch buttons 3
20110609090107.4 0.14162 0.00088 Computation point: Before Header 3
20110609090107.4 0.14247 0.00243 Authorization Check: "58293300185431144" User: "HAYDEN" Component: "COMPUTATION" 3
20110609090107.4 0.14494 0.00087 Post Authorization Check 3
20110609090107.4 0.14578 0.00062 ...Perform computation of item: F109_WARNINGS, type=STATIC_ASSIGNMENT 3
20110609090107.4 0.14637 0.00274 ...Performing static computation 3
20110609090107.4 0.14917 0.0009 ...Session State: Saved Item "F109_WARNINGS" New Value="<div>hello world</div>" 3
20110609090107.4 0.15002 0.00068 Processing point: Before Header 3
20110609090107.4 0.15068 0.00095 Authorization Check: "58293300185431144" User: "HAYDEN" Component: "PROCESS" 3
20110609090107.4 0.15165 0.00095 Post Authorization Check 3
20110609090107.4 0.15259 0.00406 "...Process ""find_errors"": PLSQL (BEFORE_HEADER) begin
:f109_warnings := null;
end;" 3
20110609090107.4 0.15672 0.00103 ...Session State: Saved Item "F109_WARNINGS" New Value="" 3
20110609090107.4 0.1577 0.00149 ...metadata, fetch item type settings 3
20110609090107.4 0.15921 0.01143 ...metadata, fetch items 3
20110609090107.4 0.17067 0.0066 Show page template header 3
20110609090107.4 0.17726 0.00112 Computation point: After Header 3
20110609090107.4 0.17835 0.00213 Processing point: After Header 3
20110609090107.4 0.18047 0.00243 Authorization Check: "20690503835253927" User: "HAYDEN" Component: "tab" 3
20110609090107.4 0.18294 0.00104 Post Authorization Check 3
20110609090107.4 0.18393 0.00091 Authorization Check: "58293300185431144" User: "HAYDEN" Component: "tab" 3
20110609090107.4 0.18484 0.00259 Post Authorization Check 3
20110609090107.4 0.18745 0.00102 Region: &nbsp; 3
20110609090107.4 0.18844 0.00103 Authorization Check: "58293300185431144" User: "HAYDEN" Component: "" 3
20110609090107.4 0.18948 0.03112 Post Authorization Check 3
20110609090107.5 0.22067 0.00122 Region: &nbsp; 3
20110609090107.5 0.22183 0.00241 Authorization Check: "5394611084668332" User: "HAYDEN" Component: "" 3
20110609090107.5 0.22427 0.00526 Post Authorization Check 3
20110609090107.5 0.22952 0.00809 Region: Breadcrumb 3
20110609090107.5 0.23763 0.00119 Computation point: Before Box Body 3
20110609090107.5 0.23877 0.00105 Processing point: Before Box Body 3
20110609090107.5 0.2398 0.00302 Item: P19_ID_LIST NATIVE_HIDDEN 3
20110609090107.5 0.24285 0.00219 Item: P19_APPROVAL_ID NATIVE_HIDDEN 3
20110609090107.5 0.24504 0.00539 Region: Edit Time 3
20110609090107.5 0.25047 0.00467 Item: P19_CHANGED_IDS NATIVE_HIDDEN 3
20110609090107.5 0.25514 0.00688 show report 3
20110609090107.5 0.26205 0.00114 determine column headings 3
20110609090107.5 0.26313 0.00324 activate sort 3
20110609090107.5 0.26639 0.00315 parse query as: APP_SEC 3
20110609090107.5 0.26953 0.00747 binding: ":APP_USER"="APP_USER" value="HAYDEN" 3
20110609090107.5 0.27713 0.10094 binding: ":F109_ID_LIST"="F109_ID_LIST" value="219159198076799389604724962683469530452~219159198076801807456364191941818942804" 3
20110609090107.6 0.37804 0.00271 print column headings 3
20110609090107.6 0.38075 15.40215 rows loop: 15 row(s) 3
20110609090123.0 15.78287 0.00322 pagination 3
20110609090123.0 15.78602 0.00112 Computation point: After Box Body 3
20110609090123.0 15.7871 0.00181 Processing point: After Box Body 3
20110609090123.0 15.78891 0.0008 Computation point: Before Footer 3
20110609090123.0 15.78969 0.00065 Processing point: Before Footer 3
20110609090123.0 15.79033 0.00617 Show page tempate footer 3
20110609090123.0 15.79657 0.00105 Computation point: After Footer 3
20110609090123.0 15.79757 0.00082 Processing point: After Footer 3
20110609090123.0 15.79837 0.01089 Log Activity: 3
20110609090123.0 15.80941 0.00126 v$sesstat.statistic# = 436: execute count=0 3
20110609090123.1 15.81056 - End Show Page 3I had something like that. In my case it is a "pl/sql function retuning query" that is the source of the report region.
Check in the database if the query is running slow when Apex is running the query, not when your are running the query. The binding may be different than what you expect. -
Airport multicast performance problems in u-verse IPTV bridge.
I have a bunch of airport hardware, two n expresses, a draft n extreme, and a 5th generation extreme. I've recently moved to a new house and have AT&T's u-verse multicast IPTV installed. I want to put my TV somewhere without wiring and was going to just do it using a dedicated 802.11n bridge formed from either the two expresses, or the draft n extreme (at the multicast source side) and an express as a receiver.
This seems to work from a functionality perspective, I get the multicast stream into the AT&T set-top box and can watch all of the channels for extended periods of time. The problem that I run into is that I have performance problems that result in the video stuttering, pixelating, and freezing for seconds to minutes at a time. I don't understand why this is the case. The HD stream is less than 9Mbps which should be easily handled by a 5Ghz, n-only link. The source and destination expresses are within 5 feet of each other with clear line-of-sight.
Does anyone have any experience with multicast streaming on aiport hardware? Is there some limitation in the airport implementation where multicast (UDP) packets trigger some sort of slowpath packet processing, so that packets are being dropped? Is there some reporting feature within airport utility that where I can look for diagnostics related to dropped or (extremely) delayed packets? Is there something about AT&T's use of multicast IPTV that is just incompatible with airport hardware?
Note that the u-verse gateway handles all of the IGMP in this situation, and that nothing else is on the network. Well, the 5th gen router is on the network and everything else I own is behind it on a different wifi network. The gateway is smart enough to filter out the multicast traffic so that the router doesn't see it.Found a solution. Switching from Apple's built-in "create a wireless network" and "join a wireless network+allow ethernet clients" to a WDS network with a main and a remote solves all of the problems. It's not a great option because the WDS network forces me to select a fixed, 2.4Ghz channel, but the IPTV stream is only 8-ish Mbps which seems to be doable, even with all of the wireless networks floating around my house. I guess that it could be a bigger problem during peak wifi usage around here, but we'll cross that bridge when it happens.
-
Hi all
I am facing performance problem, While selecting field 'DATAB' ( Validity start date of the condition record ) from Pooled table 'A017',I am getting timed out error ( slong ).IS there any efficient way to retrieve data.
Regards
Sreenivasa ReddyHi,
follow below condition to improve performance
1) Remove * from select
2) Select field in sequence as defined in database
3) Avoid unnecessary selects
i.e check for internal table not initial
4) Use all entries and sort table by key fields
5) Remove selects ferom loop and use binary search
6) Try to use secondary index when you don't have
full key.
7) Modify internal table use transporting option
8) Avoid nested loop . Use read table and loop at itab
from sy-tabix statement.
9) free intrenal table memory wnen table is not
required for further processing.
10)
Follow below logic.
FORM SUB_SELECTION_AUFKTAB.
if not it_plant[] is initial.
it_plant1[] = it_plant[].
sort it_plant1 by werks.
delete adjacent duplicates from it_plant1 comparing werks
SELECT AUFNR KTEXT USER4 OBJNR INTO CORRESPONDING FIELDS OF TABLE
I_AUFKTAB
FROM AUFK
FOR ALL ENTRIES IN it_plant1
WHERE AUFNR IN S_AUFNR AND
KTEXT IN S_KTEXT AND
WERKS IN S_WERKS AND
AUART IN S_AUART AND
USER4 IN S_USER4 AND
werks eq it_plant1-werks.
free it_plant1.
Endif.
ENDFORM. "SUB_SELECTION_AUFKTAB
Regards
Amole -
9i Forms performance - the final irony
For those who are interested, the performance problems some of our users are experiencing is down to insufficient RAM. According to Oracle Support, JInitiator requires at least 64MB spare, so our users on the 128MB machines are suffering almost constant swapping when they use the 9i Forms application.
In other words, the web-enabled version of the application makes greater demands on the client machine than the client/server version of the forms runtime. Our users are bemused to find they now have to upgrade their desktop machines in order to run a browser-based system. We're going to fine them fifty pence every time they say "but I thought this was thin-client", which will save us having to explain about how Java is such a memory hog.
Support suggested we might use the native JVM which requires less memory but that does rather undermine our sole reason for migrating to 9i Forms: being on a certified platform.
I think I chose our project motto well: Per ardua ad hice.
Cheers, APCIt's a variation on the RAF motto, Per ardua ad astra, "through hard work we reach the stars". My dog latin version means something like "through hard work we can get to where we are now".
See also the Red Queen in Alice through the Looking Glass.
Cheers, APC -
9ias formslistenerservlet performance problem
Has anyone experienced a performance problem when running forms using the formslistenerservlet configuration in the 9i application server?
We are doing a new installation and running forms for the first time under this configuration and it runs with sub-second
response time in client-server mode, but takes over 5 seconds to respond when running under the formslistenerservlet.
Any help would be greatly appreciated!Heres what I suggest. Get a simple form and try it on the web - if its slow then at least yuo have a simple test case.
Otherwise, tried the form you are having problems with c/s and then compare with the web. If the issue is with the data
base access then you will see the same problem with c/s since form on the web is EXACTLY the same as c/s except the
UI is rendered as a Java applet.
If the performance is only bad when web deployed then you need to start looking to seet what triggers are firing which could
be causeing extra network traffic between the client and the app server. Look for code which does lots of UI activity:like
set_item_property and things like that.
Again, if you run a simple form first (with no code) this will give you the "best case" timings.
Hope this helps
Regards
Grant Ronald
Forms Product management
Maybe you are looking for
-
No sound from headphone jack -- here's what I've tried -- now Genius bar?
Hi all, Some time ago the headphone jack on my MacBook decided to stop putting out sound. I've searched a bunch of forums looking for clues but no dice yet. I've looked into a bunch of things trying to diagnose and fix this problem, which I'll summar
-
Unable to create an internet shortcut (simple process, but doesn't work)
There really aren't any details. The process just doesn't work & research suggests that it may well be browser related.
-
Migrating to new Active Directory Domain
Hey people, I have a OSX Server here at a school which I need to move from an old Active Directory domain to a new one. We are having a restructure of our IT System and 90% of our equipment is PC but have a few macs on site for the specific tasks tha
-
ASFixed newZoom = AVPageViewGetZoom(myPageView); When the acrobatpro is set to 100% this API returns me a noi 49152. Why is it such a big number and if this reflects 100% how one has to interpret it.?
-
SQL Exception: Fail to convert between UTF8 and UCS2: failUTF8Conv
Hi, I am trying to use the DBMS_OBFUSCATION_TOOLKIT to encrypt/decrypt some strings through JDBC, but I am getting the following exception: SQL Exception: Fail to convert between UTF8 and UCS2: failUTF8Conv The input and output parameters for the enc