Performance of report
All,
I created a report in report builder 9.0.4.0.33.
The report generates around 18,000 page pdf file, each row contains 14 fields - it takes around 40 minutes.
- the query for the report is tuned and it runs and gets the result in about a minute.
- there are no complications in the layout - just displaying the data in a table.
Is this a limitation of rdf, that it runs slow as the number of pages of increase. I am looking for something like performance report of rdf files.
thanks in advance,
Pavan
Hi,
That is a big report! How are you running this, client side or on the application server? My thoughts on speeding this up is to add more iron (hardware) but if you are concerned about making people wait, you should probably look into using report server so that you can schedule this as a job.
Thanks.
Similar Messages
-
Can the Performance Detail reports be exported as PDF without the Detail Table?
We previously generated significant numbers of Performance Detail reports out of SCOM 2007 R2 as PDF files, and the 'Detail Table' did not show.
Now that we are on SCOM 2012 R2, the same reports show the 'Detail Table' when exported to PDF. We report on 6 to 12 months of data, so these tables are huge, and are also useless for our purposes.
Is there some way to suppress the Detail Table when exporting a Performance Detail report to PDF?Hello,
Please see if the method in the following post can meet your requirements:
SCOM reports on performance counters for large groups of servers
http://www.bictt.com/blogs/bictt.php/2010/11/28/scom-reports-on-performance-counters-for-large-groups-of-servers -
Split of Cubes to improve the performance of reports
Hello Friends . We are now Implementing the Finance GL Line Items for Global Automobile operations in BMW and services to Outsourced to Japan which increased the data volume to 300 millions records for last 2 years since we go live. we have 200 Company codes.
How To Improve performance
1. Please suggest if I want to split the cubes based on the year and Company codes which are region based. which means european's will run report out of one cube and same report for america will be on another cube
But Question here is if I make 8 cube (2 For each year : 1- current year comp code ABC & 1 Current Year DEF), (2 For each year : 1- Prev year comp code ABC & 1 Prev Year DEF)
(2 For each year : 1- Arch year comp code ABC & 1 Archieve Year DEF)
1. Then what how I can I tell the query to look the data from which cube. since Company code is authorization variable so to pick that value of comp code and make a customer exit variable for infoprovider will increase lot of work.
Is there any good way to do this. does split of cubes make sense based on company code or just make it on year.
Please suggest me a excellent approach step by step to split cubes for 60 million records in 2 years growth will be same for
next 4 years since more company codes are coming.
2. Please suggest if split of cube will improve performance of report or it will make it worse since now query need to go thru 5-6 different cubes.
Thanks
Regards
SoniyaHi Soniya,
There are two ways in which you can split your cube....either based on Year or based on Company code.(i.e Region). While loading the data, write a code in the start routine which will filter tha data. For example, if you are loading data for three region say 1, 2, and 3, you code will be something like
DELETE SOURCE_PACKAGE WHERE REGION EQ '2' OR
REGION EQ '3'.
This will load data to your cube correspoding to region 1.
you can build your reports either on these cubes or you can have a multiprovider above these cubes and build the report.
Thanks..
Shambhu -
Performance my Report is 57% is ABAP , 42 % System & 1% for DB
Performance my Report is 57% is ABAP , 42 % System & 1% for DB..it it OK or will there be any performance issues. Please let me know
ABAP Execution time is <b>18,602</b> micro seconds
DB <b> 256</b>
System <b>13,899</b>
<b> HITLIST</b>----
Number Gross time (in microseconds) = Net (microseconds) Gross time in % Net time in % Call Program Name Type Display filter group
1 32757 0 100.0 0.0 Runtime analysis Sys.
1 32725 4368 99.9 13.3 Submit Report Z_BALRAM_TEST1 SAPMS38T
1 26691 776 81.5 2.4 Program Z_BALRAM_TEST1
3 26554 2088 81.1 6.4 Dynpro Entry Z_BALRAM_TEST1
1 26383 850 80.5 2.6 PBO Dynpro SAPMSSY0 SAPMSSY0 Sys.
1 423 50 1.3 0.2 Call Func. DOKU_OBJECT_EXIST RSDBRUNT
1 408 10 1.2 0.0 Call Func. AC_SYSTEM_FLUSH SAPFGUICNTL
1 385 37 1.2 0.1 Call Func. SYSTEM_COMBO_OUTPUT SAPMSSYD
1 303 21 0.9 0.1 Call Func. VRM_QUEUE_FLUSH SAPLSCNT
1 140 97 0.4 0.3 Load Dynpro SAPMSSY0 1000 Z_BALRAM_TEST1 Sys. -
How to improve query performance when reporting on ods object?
Hi,
Can anybody give me the answer, how to improve my query performance when reporting on ODS object?
Thanks in advance,
Ravi Alakuntla.Hi Ravi,
Check these links which may cater your requirement,
Re: performance issues of ODS
Which criteria to follow to pick InfoObj. as secondary index of ODS?
PDF on BW performance tuning,
https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/cccad390-0201-0010-5093-fd9ec8157802
Regards,
Mani. -
Poor performance of Report Writer reports (Special Ledger Library)
Greetings - We are running into problems with poor performance of reports that are written with the SAP Report Writer. The problem appears to be caused when SAP is using the primary-key index in our Special Purpose ledger (where the reports are generated). The index contains object fields that cannot be added to the report library (COBJNR, SOBJNR, ROBJNR). We have created alternate indices, but they are not being picked up with the Report Writer reports.
Are there any configurable or technical settings that we can work with in order to force the use of a specific index for a report? It seems logical that SAP would find the most efficient index to use, but with the reports that we are looking at, this does not appear to be the case.
Any help that can be offered will be greatly appreciated...We are currently using version 4.6C, but are planning an upgrade to ECC 6.0 later this year.
Thanks in advance -Arjun,
Where / which files contains these parameters we cannot find them all ???
Tomcat - Java _properties and try again ( You can tune below value as per your system memory)
-XX:PermSize=256m
-XX:MaxPermSize=256m
-XX:NewSize=171m
-XX:MaxNewSize=171m
-XX:SurvivorRatio=2
-XX:TargetSurvivorRatio=90
-XX:+DisableExplicitGC
-XX:+UseTLAB
As a general update it looks like we need to use the Monitoring tools that are installed by default, we are now in the process of installing the database etc
Cheers -
Performance Monitor Reports Missing in FDM
Hi All -
I'm trying to run "Performance Monitor Reports" in FDM and am getting the below error messages for both type of reports. Any help on this greatly appreciated. Thank you!!
Here's the message from the error log:
Invalid Report File: \\..\Apps\FDMLTD\Reports\PerformanceGraphAvgProcessTime.rpt
I logged into the app server and looked in the folder, and .rpt isn't there.
Same with the Min-Max report
Error: Invalid Report File: \\..\Apps\FDMLTD\Reports\PerformanceGraphMinMaxProcessTime.rptCan you please let me know the steps to import report xml? I logged into workbench client, clicked on "view->Reports" and tried to import. But I was not able to locate the required xml files for the Performance monitor reports.
I tried to find the steps in help guide as well, but couldn't find anything. Thanks! -
Hi Experts,
In this following shown report Data base performance is consuming , can you please help me in this issue where can i increase my performance. Please help me urgent.
Report need performance
Program Name : ZSD_QUOTE *
Functional Analyst : TOBY *
Programmer : Vijay Joseph *
Start date : 03/14/2007 (MM/DD/YYYY) *
Initial CTS : DEVK913353 *
Description : This program will generate the Quote detls *
Includes : None *
Function Modules : None *
Logical database : None *
Transaction Code : ZQUOTE *
External references : None *
Modification Log *
Date | Modified by | CTS number | Comments *
03/14/2007|Vijay Joseph | DEVK913353 |Initial Development *
REPORT ZSD_QUOTE
line-size 252
line-count 40(0)
no standard page heading . .
*Tables
TABLES : VBAK,
EQUI,
EKKO.
*TYPES
TYPES : BEGIN OF T_VBAP,
VBELN LIKE VBAK-VBELN,
ERDAT LIKE VBAK-ERDAT,
BNDDT LIKE VBAK-BNDDT,
NETWR LIKE VBAK-NETWR,
VKBUR LIKE VBAK-VKBUR,
BSTNK LIKE VBAK-BSTNK,
KUNNR LIKE VBAK-KUNNR,
POSNR LIKE VBAP-POSNR,
MATNR LIKE VBAP-MATNR,
PSTYV LIKE VBAP-PSTYV,
KWMENG LIKE VBAP-KWMENG,
VGBEL LIKE VBAP-VGBEL,
VGPOS LIKE VBAP-VGPOS,
WERKS LIKE VBAP-WERKS,
END OF T_VBAP.
*Types for the likp and lips
TYPES : BEGIN OF T_LIPS,
VBELN LIKE LIKP-VBELN,
LFDAT LIKE LIKP-LFDAT,
POSNR LIKE LIPS-POSNR,
PSTYV LIKE LIPS-PSTYV,
MATNR LIKE LIPS-MATNR,
WERKS LIKE LIPS-WERKS,
VGBEL LIKE LIPS-VGBEL,
VGPOS LIKE LIPS-VGPOS,
END OF T_LIPS.
*Types for the EQUI
TYPES : BEGIN OF T_EQUI,
EQUNR LIKE EQUI-EQUNR,
SERNR LIKE EQUI-SERNR,
KDAUF LIKE EQBS-KDAUF,
KDPOS LIKE EQBS-KDPOS,
END OF T_EQUI.
*Types for the KNA1
TYPES : BEGIN OF T_KNA1,
KUNNR LIKE KNA1-KUNNR,
NAME1 LIKE KNA1-NAME1,
END OF T_KNA1.
*Types for the MAKT
TYPES : BEGIN OF T_MAKT,
MATNR LIKE MAKT-MATNR,
MAKTX LIKE MAKT-MAKTX,
SPRAS LIKE MAKT-SPRAS,
END OF T_MAKT.
*types for VBFA
TYPES : BEGIN OF T_VBFA,
VBELV LIKE VBFA-VBELV,
POSNV LIKE VBFA-POSNV,
VBELN LIKE VBFA-VBELN,
POSNN LIKE VBFA-POSNN,
VBTYP_N LIKE VBFA-VBTYP_N,
END OF T_VBFA.
*types for the output
TYPES : BEGIN OF T_OUTPUT,
VBELV LIKE VBFA-VBELV,
ERDAT LIKE VBAK-ERDAT,
BNDDT LIKE VBAK-BNDDT,
NETWR(15) type C, " LIKE VBAK-NETWR,
VBELN LIKE VBAK-VBELN,
BSTNK LIKE VBAK-BSTNK,
KUNNR LIKE VBAK-KUNNR,
KWMENG(15) TYPE C, " LIKE VBAP-KWMENG,
NAME1 LIKE KNA1-NAME1,
VKBUR LIKE VBAK-VKBUR,
MATNR LIKE MAKT-MATNR,
MAKTX LIKE MAKT-MAKTX,
LFDAT LIKE LIKP-LFDAT,
SERNR LIKE EQUI-SERNR,
END OF T_OUTPUT.
*Types for the VBUP
TYPES : BEGIN OF T_VBUP,
vbeln LIKE VBUP-VBELN,
posnr LIKE VBUP-POSNR,
lfsta LIKE VBUP-LFSTA,
END OF T_VBUP.
*Internal Table
DATA : GIT_VBAP TYPE STANDARD TABLE OF T_VBAP,
GIT_LIPS TYPE STANDARD TABLE OF T_LIPS,
GIT_EQUI TYPE STANDARD TABLE OF T_EQUI,
GIT_KNA1 TYPE STANDARD TABLE OF T_KNA1,
GIT_MAKT TYPE STANDARD TABLE OF T_MAKT,
GIT_OUTPUT TYPE STANDARD TABLE OF T_OUTPUT,
GIT_VBUP TYPE STANDARD TABLE OF T_VBUP,
GIT_VBFA TYPE STANDARD TABLE OF T_VBFA.
*work Area
DATA : GWA_VBAP TYPE T_VBAP,
GWA_LIPS TYPE T_LIPS,
GWA_EQUI TYPE T_EQUI,
GWA_KNA1 TYPE T_KNA1,
GWA_MAKT TYPE T_MAKT,
GWA_OUTPUT TYPE T_OUTPUT,
GWA_VBUP TYPE T_VBUP,
GWA_VBFA TYPE T_VBFA.
*selection screen.
SELECTION-SCREEN : BEGIN OF BLOCK ZBLOCK WITH FRAME TITLE TEXT-015.
Select-options : S_VBELN FOR VBAK-VBELN,
S_ERDAT FOR VBAK-ERDAT, " OBLIGATORY,
S_EBELN FOR EKKO-EBELN MATCHCODE OBJECT MEKK,
S_SERNR FOR EQUI-SERNR MATCHCODE OBJECT EQSN.
PARAMETERS : P_WERKS LIKE VBAP-WERKS OBLIGATORY.
SELECTION-SCREEN : END OF BLOCK ZBLOCK.
**************top of page*********************************************
TOP-OF-PAGE.
PERFORM SAPSD_TOP_OF_PAGE.
**************At selection screen*************************************
at selection-screen.
*for validating the Sales Order
PERFORM SAPSD_SCREEN_VALIDATION_VBELN.
*for validating the plant
PERFORM SAPSD_SCREEN_VALIDATION_WERKS.
*for the validating the PO number
PERFORM SAPSD_SCREEN_VALIDATION_PO.
*for the validating the serial number
PERFORM SAPSD_SCREEN_VALIDATION_SERIAL.
***************strart of selection************************************
START-OF-SELECTION.
*Get the data
PERFORM SAPSD_FETCH_DATA.
*For the final output table
PERFORM SAPSD_OUTPUT.
*& Form SAPSD_FETCH_DATA
text
--> p1 text
<-- p2 text
FORM SAPSD_FETCH_DATA .
*FETCH FROM THE VBAK AND VBAP.
SELECT VBAK~VBELN
VBAK~ERDAT
VBAK~BNDDT
VBAK~NETWR
VBAK~VKBUR
VBAK~BSTNK
VBAK~KUNNR
VBAP~POSNR
VBAP~MATNR
VBAP~PSTYV
VBAP~KWMENG
VBAP~VGBEL
VBAP~VGPOS
VBAP~WERKS
FROM VBAK INNER JOIN VBAP
ON VBAKVBELN EQ VBAPVBELN
INTO TABLE GIT_VBAP
WHERE VBAK~VBELN IN S_VBELN
AND VBAK~ERDAT IN S_ERDAT
AND VBAK~BSTNK IN S_EBELN
AND VBAP~PSTYV EQ 'IRRA'
AND VBAP~WERKS EQ P_WERKS.
IF SY-SUBRC EQ 0.
SORT GIT_VBAP BY VBELN.
else.
message e022(z1).
ENDIF.
*from vbfa
select VBELV
POSNV
VBELN
POSNN
VBTYP_N
into table git_vbfa
from vbfa
for all entries in git_vbap
where vbelv eq git_vbap-vbeln
and posnv eq git_vbap-posnr.
*FETCH DATA FROM THE LIKP AND LIPS
IF NOT GIT_VBAP IS INITIAL.
SELECT LIKP~VBELN
LIKP~LFDAT
LIPS~POSNR
LIPS~PSTYV
LIPS~MATNR
LIPS~WERKS
LIPS~VGBEL
LIPS~VGPOS
FROM LIKP INNER JOIN LIPS
ON LIKPVBELN EQ LIPSVBELN
INTO TABLE GIT_LIPS
FOR ALL ENTRIES IN GIT_VBFA
WHERE LIPS~VBELN EQ GIT_VBFA-VBELN
and LIPS~POSNR EQ GIT_VBFA-POSNN.
AND LIPS~WERKS EQ GIT_VBAP-WERKS.
AND LIPS~MATNR EQ GIT_VBAP-MATNR.
AND LIPS~POSNR EQ GIT_VBAP-POSNR.
AND LIPS~PSTYV EQ 'IRRA'.
AND LIPS~VGPOS EQ GIT_VBAP-POSNR.
IF SY-SUBRC EQ 0.
SORT GIT_LIPS BY VBELN.
ENDIF.
ENDIF.
*for getting the delivery status(dont take the delivered document number
*take only 'open'.
if not git_lips is initial.
select VBELN
posnr
lfsta
from vbup
into table git_vbup
for all entries in git_lips
where vbeln eq git_lips-vbeln
and posnr eq git_lips-posnr.
and ( lfsta EQ 'A' ) OR
( lfsta EQ 'B' ) .
if sy-subrc eq 0.
sort git_vbup by vbeln.
endif.
endif.
*To get the equipment number
IF NOT GIT_VBAP IS INITIAL.
SELECT EQUI~EQUNR
EQUI~SERNR
EQBS~KDAUF
EQBS~KDPOS
FROM EQUI INNER JOIN EQBS
ON EQUIEQUNR EQ EQBSEQUNR
INTO TABLE GIT_EQUI
FOR ALL ENTRIES IN GIT_VBAP
WHERE EQUI~SERNR IN S_SERNR
AND EQBS~KDAUF EQ GIT_VBAP-VBELN.
IF SY-SUBRC EQ 0.
SORT GIT_EQUI BY EQUNR.
ENDIF.
ENDIF.
*To get the customer name
IF NOT GIT_VBAP IS INITIAL.
SELECT KUNNR
NAME1
INTO TABLE GIT_KNA1
FROM KNA1
FOR ALL ENTRIES IN GIT_VBAP
WHERE KUNNR EQ GIT_VBAP-KUNNR.
IF SY-SUBRC EQ 0.
SORT GIT_KNA1 BY KUNNR.
ENDIF.
ENDIF.
*to get the material number
if not git_vbap is initial.
SELECT MATNR
MAKTX
SPRAS
INTO TABLE GIT_MAKT
FROM MAKT
FOR ALL ENTRIES IN GIT_VBAP
WHERE MATNR EQ GIT_VBAP-MATNR
AND SPRAS EQ SY-LANGU.
IF SY-SUBRC EQ 0.
SORT GIT_MAKT BY MATNR.
ENDIF.
endif.
ENDFORM. " SAPSD_FETCH_DATA
*& Form SAPSD_OUTPUT
text
--> p1 text
<-- p2 text
FORM SAPSD_OUTPUT .
data : l_vbelv like vbfa-vbelv.
LOOP AT GIT_VBAP INTO GWA_VBAP.
*for getting the delivey date
clear : gwa_lips.
read table git_vbfa into gwa_vbfa with key vbelv = gwa_vbap-vbeln
posnv = gwa_vbap-posnr.
if sy-subrc eq 0.
read table git_lips into gwa_lips
with key VBELN = GWA_vbfa-Vbeln
POSNR = GWA_vbfa-posnn
PSTYV = 'IRRA'.
IF SY-SUBRC EQ 0.
GWA_OUTPUT-LFDAT = GWA_LIPS-LFDAT.
READ TABLE GIT_VBUP INTO GWA_VBUP
WITH KEY VBELN = GWA_LIPS-VBELN
POSNR = GWA_LIPS-POSNR.
IF SY-SUBRC EQ 0.
IF GWA_VBUP-LFSTA EQ 'A' OR GWA_VBUP-LFSTA EQ 'B'.
clear : l_vbelv.
select single vbelv
into l_vbelv
from vbfa
where VBELN EQ gwa_vbap-vbeln.
*Quote Number
if sy-subrc eq 0.
GWA_OUTPUT-VBELV = L_VBELV.
endif.
*Move the details to the final table
GWA_OUTPUT-VBELN = GWA_VBAP-VBELN.
GWA_OUTPUT-ERDAT = GWA_VBAP-ERDAT.
GWA_OUTPUT-BNDDT = GWA_VBAP-BNDDT.
GWA_OUTPUT-NETWR = GWA_VBAP-NETWR.
GWA_OUTPUT-KUNNR = GWA_VBAP-KUNNR.
GWA_OUTPUT-KWMENG = GWA_VBAP-KWMENG.
GWA_OUTPUT-BSTNK = GWA_VBAP-BSTNK.
for getting the name from kna1
CLEAR : GWA_KNA1.
READ TABLE GIT_KNA1 INTO GWA_KNA1
WITH KEY KUNNR = GWA_VBAP-KUNNR.
IF SY-SUBRC EQ 0.
GWA_OUTPUT-NAME1 = GWA_KNA1-NAME1.
ENDIF.
GWA_OUTPUT-VKBUR = GWA_VBAP-VKBUR.
*for getting mateial number and description
CLEAR : GWA_MAKT.
READ TABLE GIT_MAKT INTO GWA_MAKT
WITH KEY MATNR = GWA_VBAP-MATNR
SPRAS = SY-LANGU.
IF SY-SUBRC EQ 0.
GWA_OUTPUT-MATNR = GWA_MAKT-MATNR.
GWA_OUTPUT-MAKTX = GWA_MAKT-MAKTX.
ENDIF.
for getting the serial number
clear : gwa_equi.
read table git_equi into gwa_equi
with key kdauf = gwa_vbap-vbeln
kdpos = gwa_vbap-posnr.
IF SY-SUBRC EQ 0.
GWA_OUTPUT-SERNR = gwa_equi-sernr.
ENDIF.
append gwa_output to git_output.
ENDIF.
ENDIF.
ENDIF.
CLEAR : GWA_VBAP,
GWA_OUTPUT.
ENDLOOP.
*free and refres the internal table
clear : git_vbap,
git_lips,
git_makt,
git_equi.
refresh : git_vbap,
git_lips,
git_makt,
git_equi.
free: git_vbap,
git_lips,
git_makt,
git_equi.
loop at git_output into gwa_output.
FORMAT COLOR COL_NORMAL INTENSIFIED OFF INVERSE OFF.
WRITE : /1 sy-vline,
2 gwa_output-VBELV, "qte no
13 sy-vline,
14 gwa_output-ERDAT, "cr date
25 sy-vline,
26 gwa_output-BNDDT, "exp date
36 sy-vline,
37 gwa_output-NETWR, "qte value
53 sy-vline,
54 gwa_output-VBELN, "so
65 SY-VLINE,
66 gwa_output-BSTNK, "po
87 SY-VLINE,
88 gwa_output-KUNNR, "customer
99 SY-VLINE,
100 gwa_output-NAME1, "Name
136 sy-vline,
137 gwa_output-VKBUR, "S off
142 sy-vline,
143 gwa_output-MATNR, "Material
162 sy-vline,
163 gwa_output-MAKTX , "Description
204 sy-vline,
205 gwa_output-KWMENG, "Or Qty
221 sy-vline,
222 gwa_output-LFDAT, "Del Date
233 sy-vline,
234 gwa_output-SERNR, "Serial No
252 SY-VLINE.
uline.
clear : gwa_output.
endloop.
*free and refresh the internal table
refresh : git_output.
free : git_output.
ENDFORM. " SAPSD_OUTPUT
*& Form SAPSD_TOP_OF_PAGE
text
--> p1 text
<-- p2 text
FORM SAPSD_TOP_OF_PAGE .
write: /15 text-016, 30 sy-repid.
FORMAT COLOR COL_HEADING INTENSIFIED ON INVERSE OFF.
ULINE.
WRITE : /1 sy-vline,
2 text-001, "QTE No
13 sy-vline,
14 text-002, "CR Date
25 sy-vline,
26 text-003, "EX Date
36 sy-vline,
37 text-004, "QT Value
53 sy-vline,
54 text-005, "SO
65 SY-VLINE,
66 text-006, "PO
87 SY-VLINE,
88 text-007, "Customer
99 sy-vline,
100 text-008, "Name
136 sy-vline,
137 text-009, "S off
142 sy-vline,
143 text-010, "Material
162 sy-vline,
163 text-011 , "Description
204 sy-vline,
205 text-012, "Or Qty
221 sy-vline,
222 text-013, "Del Date
233 sy-vline,
234 text-014, "Serial No
252 SY-VLINE.
ULINE.
ENDFORM. " SAPSD_TOP_OF_PAG,
*& Form SAPSD_SCREEN_VALIDATION_VBELN
text
--> p1 text
<-- p2 text
FORM SAPSD_SCREEN_VALIDATION_VBELN .
IF NOT S_VBELN IS INITIAL.
*To check the plant.If entry is wrong the an error message displayed.
DATA : l_VBELN LIKE VBAK-VBELN. "SO
Validating SO in selection screen
SELECT SINGLE VBELN INTO l_VBELN FROM VBAK
WHERE VBELN IN S_VBELN.
IF sy-subrc NE 0.
MESSAGE e023(Z1). " Invalid SO
ENDIF.
endif.
ENDFORM. " SAPSD_SCREEN_VALIDATION_VBELN
*& Form SAPSD_SCREEN_VALIDATION_WERKS
text
--> p1 text
<-- p2 text
FORM SAPSD_SCREEN_VALIDATION_WERKS .
IF NOT P_WERKS IS INITIAL.
*To check the plant.
*If entry is wrong the an error message displayed.
DATA : l_WERKS LIKE T001W-WERKS. "Plant
Validating Plant in selection screen
SELECT SINGLE WERKS INTO l_WERKS FROM T001W
WHERE WERKS EQ P_WERKS.
IF sy-subrc NE 0.
MESSAGE e024(Z1). " Invalid Plant
ENDIF.
ENDIF.
ENDFORM. " SAPSD_SCREEN_VALIDATION_WERKS
*& Form SAPSD_SCREEN_VALIDATION_PO
text
--> p1 text
<-- p2 text
FORM SAPSD_SCREEN_VALIDATION_PO .
IF NOT S_EBELN IS INITIAL.
*To check the plant.
*If entry is wrong the an error message displayed.
DATA : l_EBELN LIKE EKKO-EBELN. "PO
Validating PO in selection screen
SELECT SINGLE EBELN INTO l_EBELN FROM EKKO
WHERE EBELN IN S_EBELN.
IF sy-subrc NE 0.
MESSAGE e025(Z1). " Invalid PO
ENDIF.
ENDIF.
ENDFORM. " SAPSD_SCREEN_VALIDATION_PO
*& Form SAPSD_SCREEN_VALIDATION_SERIAL
text
--> p1 text
<-- p2 text
FORM SAPSD_SCREEN_VALIDATION_SERIAL .
IF NOT S_SERNR IS INITIAL.
*To check the SERIAL NO.
*If entry is wrong the an error message displayed.
DATA : l_SERNR LIKE EQUI-SERNR. "Serial No
Validating Serial NO in selection screen
SELECT SINGLE SERNR INTO l_SERNR FROM EQUI
WHERE SERNR IN S_SERNR.
IF sy-subrc NE 0.
MESSAGE e026(Z1). " Invalid Serial No
ENDIF.
ENDIF.
ENDFORM. " SAPSD_SCREEN_VALIDATION_SERIAL
Please help me in this .
Thanks & Regards
AhammadHi Shaik,
Please remove all the join select queries and use 'for all entries' varaiant of the select query. Check whether you can create and use indexes in ur queries.
Thanks and Regards,
Saurabh Chhatre -
Vendor performance analysis report
Hi all,
requirement to create an ALV report for vendor performance analysis... wat r d tables n feilds which are to be used fr this... any help is appreciated..Refer the links -
vendor performance report !!!
vendor performance report
vendor performance report
I need standard vendor performance report -
Regarding the performance in report
Hi Abap Gurus,
i am working on the report. my requirement is that after executing the report data gets extracting after 11 hours.the required data is comonf perfectly. how to improve the performance. any tips to follow the performance in the report. if possible post the code.
Moderator Message: Please search the forum for available information.
Edited by: kishan P on Oct 19, 2010 4:50 PMHi,
Please check below thread;
Extract from ALV List
Regards
Jana -
Variable screen performance in report
In my project we are having somany master data objects,
we have to find the performance of selection screen ,earlier we have only display as selection screen as key now according to our client requirment we are providing both key and text in sleection screen with long text , how can i find these master data objects performance in variable screen.
The SAP std out of the box setting for an Infoobject is usually the key.( Sometimes text )
We are now making changes to almost all info objects to display as key and text, and depending on what business is asking we are changing to Long text, medium or short.
Investigation required
1) how does it affect the performance when we do F4 help
2) how does it help in search by text
3) what difference does it make when searching by key vs text.
My feel is if we show the key and text , definitely the key comes from Dimension table and the text will be fetched from the text table of the master data attribute
And hence for business partner etc it might really affect the time taken to fetch the variable values.
please help how to find the performance of variables.Yeah, It won't have much impact on the performance of the selection screen.......
Even we are displaying both key and text for many reports but never faced a performance issue....... -
Urgent: regarding the increasing the performance of report
Hi,
I had a report which is displaying the correct data but i execute on PRD Server,it gets Request Time Out.So i want to increase the performance of it.Plzz help me out in doing this.
REPORT ZWIP_STOCK NO STANDARD PAGE HEADING LINE-SIZE 150.
TABLES: AFPO, AFRU, MARA, MAKT.
DATA: BEGIN OF ITAB OCCURS 0,
AUFNR LIKE AFPO-AUFNR,
MATNR LIKE AFPO-MATNR,
LGORT LIKE AFPO-LGORT,
MEINS LIKE MARA-MEINS,
NTGEW LIKE MARA-NTGEW,
MTART LIKE MARA-MTART,
STOCK TYPE P LENGTH 10 DECIMALS 3,
END OF ITAB.
DATA : ITAB2 LIKE ITAB OCCURS 0 WITH HEADER LINE.
DATA : DESC LIKE MAKT-MAKTX.
SELECT-OPTIONS : MAT_TYPE FOR MARA-MTART.
SELECT-OPTIONS : P_MATNR FOR AFPO-MATNR.
DATA : V_MINOPR LIKE AFRU-VORNR,
V_MAXOPR LIKE AFRU-VORNR,
V_QTYMIN LIKE AFRU-GMNGA,
V_QTYMAX LIKE AFRU-GMNGA,
V_QTY TYPE P LENGTH 10 DECIMALS 3.
SELECT AAUFNR AMATNR ALGORT BMEINS BNTGEW BMTART FROM AFPO AS A
INNER JOIN MARA AS B ON AMATNR = BMATNR
INTO TABLE ITAB WHERE ELIKZ <> 'X' AND MTART IN MAT_TYPE AND A~MATNR IN P_MATNR.
ITAB2[] = ITAB[].
SORT ITAB2 BY MATNR MEINS MTART NTGEW.
DELETE ADJACENT DUPLICATES FROM ITAB2 COMPARING MATNR MEINS MTART NTGEW.
LOOP AT ITAB2.
V_QTY = 0.
LOOP AT ITAB WHERE MATNR = ITAB2-MATNR.
SELECT MIN( VORNR ) INTO V_MINOPR FROM AFRU WHERE AUFNR = ITAB-AUFNR.
SELECT MAX( VORNR ) INTO V_MAXOPR FROM AFRU WHERE AUFNR = ITAB-AUFNR.
SELECT SUM( GMNGA ) INTO V_QTYMIN FROM AFRU WHERE AUFNR = ITAB-AUFNR AND VORNR = V_MINOPR.
SELECT SUM( GMNGA ) INTO V_QTYMAX FROM AFRU WHERE AUFNR = ITAB-AUFNR AND VORNR = V_MAXOPR.
V_QTY = V_QTY + V_QTYMIN - V_QTYMAX.
ENDLOOP.
ITAB2-STOCK = V_QTY.
MODIFY ITAB2.
ENDLOOP.
LOOP AT ITAB2.
WRITE:/ ITAB2-MATNR,ITAB2-STOCK.
ENDLOOP.Instead of code from
itab2[] = itab[] till last endloop try code given below
data : begin of minopr occurs 0,
aufnr type afru-aurnr,
vornr type afru-vornr,
end of minopr.
data : begin of maxopr occurs 0,
aufnr type afru-aurnr,
vornr type afru-vornr,
end of maxopr.
data : begin of qtymin occurs 0,
aufnr type afru-aurnr,
vornr type afru-vornr,
end of qtymin.
data : begin of qtymax occurs 0,
aufnr type afru-aurnr,
vornr type afru-vornr,
end of qtymax.
select aurnr vornr into table minopr from afru for all entries in itab where aurnr = itab-aufnr
maxopr[] = minopr[].
sort minopr by aufnr vornr ascending.
sort maxopr by aufnr vornr descending.
delete adjacent duplicates from minopr comparing aufnr.
delete adjacent duplicates from maxopr comparing aufnr.
SELECT aufnr vornr GMNGA INTO TABLE QTYMIN FROM AFRU for all entries in minopr WHERE AUFNR = minopr-AUFNR AND VORNR = MINOPR-vornr.
SELECT aufnr vornr GMNGA INTO TABLE QTYMAX FROM AFRU for all entries in maxopr WHERE AUFNR = maxopr-AUFNR AND VORNR = maxopr-vornr.
sort qtymin by aufnr.
sort qtymax by aufnr
sort itab by matnr MEINS MTART NTGEW.
LOOP AT ITAB.
v_minopr = 0.
v_maxopr = 0.
read table qtymin with key aufnr = itab-aufnr binary search.
if sy-subrc = 0.
loop at qtymin from sy-tabix.
if qtymin-aufnr = itab-aufnr.
V_MINOPR = V_MINOPR + itab-gmnga.
else.
exit.
endif.
endloop.
endif.
read table qtymax with key aufnr = itab-aufnr binary search.
if sy-subrc = 0.
loop at qtymax from sy-tabix.
if qtymax-aufnr = itab-aufnr.
V_MaxOPR = V_MaxOPR + itab-gmnga.
else.
exit.
endif.
endloop.
endif.
V_QTY = V_QTY + V_QTYMIN - V_QTYMAX.
At new itab-matnr.
if sy-tabix = 1.
continue.
endif.
itab2 = itab.
itab2-stock = v_qty.
append itab2.
V_QTY = 0.
endat.
ENDLOOP.
itab2 = itab.
itab2-stock = v_qty.
append itab2.
LOOP AT ITAB2.
WRITE:/ ITAB2-MATNR,ITAB2-STOCK.
ENDLOOP. -
Slow performance refreshing report with multiple subreports in main report
I am using multiple subreports in my main report that appear to be slowing down the performance of the report considerably. Is there something I can do to increase performance with subreports.
Hi Brian,
Subreports are a known performance hog.
I would suggest going back to the drawing board and rethinking on the layout of the report. The best thing, of course, would be to completely get rid of the subreports by creating a single SQL statement that takes care of all the report's requirements.
Sometimes it is imperative to have subreports, in which case, you should try to make sure any selection filters from both the Main Report and the Subreport are passed back to the database.
Also, avoid using Page N of M for better performance - with or without Subreports.
-Abhilash -
How to genarate performance monitoring report in SAP PI automatically
Dear All,
I have a requirement where I need to automatically generate a report of monthly data of Performance monitoring in SAP PI and send it to business users.
As per my understanding, this can be achieved by pulling the data every month from the tables where these data of Performance monitoring is maintained internally within SAP PI.
Please provide me inputs as which table stores these data/ and solutions to acheive this.
Thanks
AzaharRefer below links .. You can write abap report to make it happen
Re: Get count of the messages to particular Interface in a day and send email
/people/gourav.khare2/blog/2007/12/12/interesting-abap-tables-in-xi-150-part-i
http://wiki.sdn.sap.com/wiki/display/XI/UsefulABAPtablesinSAP+XI -
Hi,
I have developed FI report which is having 18 laks records, the time taken is more than 45 hrs,please any one can help me in the performance wise.
SELECT ZBUKR
RZAWE
LIFNR
KUNNR
ZNME1
VBLNR
RWBTR
WAERS
ZALDT
VOIDD
VOIDR
BANCD
CHECT FROM PAYR INTO TABLE IT_PAYR
WHERE RZAWE IN S_RZAWE
AND ZALDT IN S_ZALDT
AND BANCD IN S_BANCD
AND VOIDD IN S_VOIDD
AND LIFNR IN S_LIFNR
AND KUNNR IN S_KUNNR.
IF SY-SUBRC = 0.
SORT IT_PAYR BY VBLNR.
DELETE ADJACENT DUPLICATES FROM IT_PAYR
COMPARING VBLNR GJAHR.
else.
ENDIF.
SORT IT_PAYR BY VBLNR LIFNR KUNNR.
*******Fetches data from PAYR Table******
IF NOT IT_PAYR[] IS INITIAL.
IT_VEND[] = IT_PAYR[].
SORT IT_VEND BY LIFNR.
DELETE IT_VEND WHERE LIFNR EQ SPACE.
DELETE ADJACENT DUPLICATES FROM IT_VEND COMPARING LIFNR.
SELECT LIFNR
BRSCH
INTO TABLE IT_LFA1
FROM LFA1
FOR ALL ENTRIES IN IT_PAYR
WHERE LIFNR EQ IT_PAYR-LIFNR.
IT_CUST[] = IT_PAYR[].
SORT IT_CUST BY KUNNR.
DELETE IT_CUST WHERE KUNNR EQ SPACE.
DELETE ADJACENT DUPLICATES FROM IT_CUST COMPARING KUNNR.
SELECT KUNNR
BRSCH
INTO TABLE IT_KNA1
FROM KNA1
FOR ALL ENTRIES IN IT_PAYR
WHERE KUNNR EQ IT_PAYR-KUNNR.
SELECT VBLNR
BELNR
BUKRS
GJAHR
KUNNR
LIFNR
ZBUKR
SHKZG FROM REGUP
INTO table it_regup
FOR ALL ENTRIES IN IT_PAYR
WHERE VBLNR EQ IT_PAYR-VBLNR
AND VBLNR NE SPACE
AND XVORL EQ SPACE.
ENDIF.
*********If internal table Regup has data then fetch BSEG data where
********belnr is equal to REGUP Belnr number**********************
IF NOT IT_REGUP[] IS INITIAL.
SELECT BUKRS
BELNR
HKONT
DMBTR
SHKZG
GJAHR
WRBTR
BUZEI
EBELN
EBELP FROM BSEG
INTO CORRESPONDING FIELDS OF TABLE IT_BSEG
FOR ALL ENTRIES IN IT_REGUP
WHERE BUKRS EQ IT_REGUP-BUKRS
AND BELNR EQ IT_REGUP-BELNR
AND GJAHR EQ IT_REGUP-GJAHR
AND SHKZG EQ 'S'.
ENDIF.
DATA: V_BVORG LIKE BKPF-BVORG.
DATA: V_M_BELNR LIKE BSEG-BELNR.
SORT IT_BSEG BY BELNR.
****Looping to Bseg table***********
LOOP AT IT_BSEG.
*Check for the GL Account Number is 120990 and credit/debit Indicator
*SHKZG is S.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'
EXPORTING
INPUT = IT_BSEG-HKONT
IMPORTING
OUTPUT = IT_BSEG-HKONT.
SHIFT IT_BSEG-HKONT LEFT DELETING LEADING '0'.
IF IT_BSEG-HKONT = '120990' AND IT_BSEG-SHKZG = 'S'. "120990
****Fetch BVORG data from BKPF table******
SELECT BELNR
BVORG FROM BKPF INTO TABLE IT_BKPF
WHERE BUKRS EQ IT_BSEG-BUKRS
AND BELNR EQ IT_BSEG-BELNR
AND GJAHR EQ IT_BSEG-GJAHR.
LOOP AT IT_BKPF INTO WA_BKPF.
MOVE WA_BKPF-BVORG TO V_BVORG.
********Fetch HKONT DMBTR BUKRS from BSEG Table**********************
SELECT BUKRS
BELNR
HKONT
DMBTR
SHKZG
GJAHR
EBELN
EBELP FROM BSEG
INTO CORRESPONDING FIELDS OF TABLE IT_BSEG1
WHERE BUKRS = V_BVORG+10(4)
AND BELNR = V_BVORG+0(10)
AND GJAHR = IT_BSEG-GJAHR.
IF IT_BSEG1-BELNR IS NOT INITIAL.
SELECT EBELN
EBELP
BELNR FROM BSEG INTO TABLE IT_PO_BSEG
FOR ALL ENTRIES IN IT_BSEG1
WHERE BELNR = IT_BSEG1-BELNR
AND SHKZG = 'S'.
ENDIF.
ENDLOOP.
ELSE.
SELECT EBELN
EBELP
BELNR FROM BSEG INTO TABLE IT_PO_BSEG
WHERE BELNR = IT_BSEG-BELNR
AND SHKZG = 'S'.
AND EBELN NE SPACE.
*ENDLOOP.
ENDIF.
*****************Checking for Capital and Expenses*********
SHIFT IT_BSEG-HKONT LEFT DELETING LEADING '0'.
IF IT_BSEG-HKONT+0(2) = '15' OR
IT_BSEG-HKONT+0(2) = '17' OR
IT_BSEG-HKONT+0(2) = '85'.
MOVE C_CAPITAL TO IT_BSEG-ACTYP.
ELSE.
IF NOT IT_BSEG-HKONT IS INITIAL.
MOVE C_EXPENSE TO IT_BSEG-ACTYP.
ENDIF.
ENDIF.
************Conversion exit ALPHA, external->internal******
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
INPUT = IT_BSEG-HKONT
IMPORTING
OUTPUT = IT_BSEG-HKONT.
************Include Tax Accounts*************
IF IT_BSEG-HKONT IN S_TAXACC.
MOVE C_TAX TO IT_BSEG-ACTYP.
ENDIF.
MODIFY IT_BSEG TRANSPORTING ACTYP.
ENDLOOP. " END LOOP FOR BSEG.
SORT IT_PO_BSEG BY EBELN.
*********Fetch SAKTO DMBTR BUKRS from MSEG Table********************
IF NOT IT_PO_BSEG[] IS INITIAL.
DELETE IT_PO_BSEG WHERE EBELN IS INITIAL.
SELECT EBELN
EBELP
SAKTO
DMBTR
BUKRS
FROM MSEG
INTO TABLE IT_MSEG
FOR ALL ENTRIES IN IT_PO_BSEG
WHERE EBELN = IT_PO_BSEG-EBELN
AND EBELP = IT_PO_BSEG-EBELP.
IF SY-SUBRC = 0.
DELETE IT_MSEG WHERE EBELN IS INITIAL.
ENDIF.
ENDIF.
ENDFORM. " GET_DATA_PAYR
*& Form final_fetch
text
--> p1 text
<-- p2 text
FORM FINAL_FETCH.
LOOP AT IT_PAYR.
MOVE IT_PAYR-ZBUKR TO IT_FINAL-ZBUKR.
MOVE IT_PAYR-RZAWE TO IT_FINAL-RZAWE.
MOVE IT_PAYR-ZNME1 TO IT_FINAL-ZNME1.
MOVE IT_PAYR-VBLNR TO IT_FINAL-VBLNR.
MOVE IT_PAYR-WAERS TO IT_FINAL-WAERS.
MOVE IT_PAYR-ZALDT TO IT_FINAL-ZALDT.
MOVE IT_PAYR-VOIDD TO IT_FINAL-VOIDD.
MOVE IT_PAYR-VOIDR TO IT_FINAL-VOIDR.
MOVE IT_PAYR-BANCD TO IT_FINAL-BANCD.
MOVE IT_PAYR-CHECT TO IT_FINAL-CHECT.
MOVE IT_PAYR-RWBTR TO IT_FINAL-RWBTR.
MOVE-corresponding IT_PAYR TO IT_FINAL.
READ TABLE IT_LFA1 WITH KEY LIFNR = IT_PAYR-LIFNR
BINARY SEARCH.
IF SY-SUBRC = 0.
MOVE IT_LFA1-LIFNR TO IT_FINAL-LIFNR.
IF NOT IT_LFA1-BRSCH IS INITIAL.
MOVE IT_LFA1-BRSCH TO V_L_BRSCH.
OVERLAY V_L_BRSCH WITH '0000'.
IF V_L_BRSCH CO '1234567890'.
MOVE 'CUS ' TO V_L_BRSCH.
ELSE.
MOVE IT_LFA1-BRSCH TO V_L_BRSCH.
ENDIF.
MOVE V_L_BRSCH TO IT_FINAL-BRSCH.
ENDIF.
ENDIF.
READ TABLE IT_KNA1 WITH KEY KUNNR = IT_PAYR-KUNNR
BINARY SEARCH.
IF SY-SUBRC = 0.
MOVE IT_KNA1-KUNNR TO IT_FINAL-KUNNR.
IF NOT IT_KNA1-BRSCH IS INITIAL.
MOVE IT_KNA1-BRSCH TO V_K_BRSCH.
OVERLAY V_K_BRSCH WITH '0000'.
IF V_K_BRSCH CO '1234567890'.
MOVE 'CUS' TO V_K_BRSCH.
ELSE.
MOVE IT_KNA1-BRSCH TO V_K_BRSCH.
ENDIF.
MOVE V_K_BRSCH TO IT_FINAL-BRSCH.
ENDIF.
ENDIF.
READ TABLE IT_REGUP WITH KEY VBLNR = IT_PAYR-VBLNR.
LOOP AT IT_REGUP WHERE VBLNR = IT_PAYR-VBLNR.
IF SY-SUBRC = 0.
SORT IT_BSEG BY BELNR HKONT ACTYP.
CLEAR :V_SUM_TAX , V_END_EXP_DMBTR ,V_FINAL_RWBTR.
LOOP AT IT_BSEG WHERE BUKRS = IT_REGUP-BUKRS
AND BELNR = IT_REGUP-BELNR
AND GJAHR = IT_REGUP-GJAHR
AND SHKZG = 'S'.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
INPUT = IT_BSEG-HKONT
IMPORTING
OUTPUT = IT_BSEG-HKONT.
SHIFT IT_BSEG-HKONT LEFT DELETING LEADING '0'.
IF IT_BSEG-HKONT = '120990' AND IT_BSEG-SHKZG = 'S'.
READ TABLE IT_BKPF WITH KEY BELNR = IT_BSEG-BELNR
BINARY SEARCH.
IF SY-SUBRC = 0.
READ TABLE IT_BSEG1 WITH KEY BELNR = V_BVORG+0(10)
BINARY SEARCH.
IF SY-SUBRC = 0.
READ TABLE IT_PO_BSEG WITH KEY BELNR = IT_BSEG1-BELNR.
IF SY-SUBRC = 0.
READ TABLE IT_MSEG WITH KEY EBELN = IT_PO_BSEG-EBELN.
IF SY-SUBRC = 0.
MOVE IT_MSEG-SAKTO TO IT_FINAL-HKONT.
MOVE IT_MSEG-DMBTR TO IT_FINAL-WRBTR.
MOVE IT_MSEG-BUKRS TO IT_FINAL-BUKRS.
ELSE.
PERFORM GL_OFFSETTING.
ENDIF.
ELSE.
PERFORM GL_OFFSETTING.
ENDIF.
PERFORM GL_OFFSETTING.
ELSE.
PERFORM GL_OFFSETTING.
ENDIF.
ENDIF.
ELSE.
PERFORM GL_OFFSETTING.
ENDIF.
MOVE IT_FINAL-WRBTR TO V_FINAL_RWBTR.
**********Check internal table for Taxes***********
AT END OF ACTYP.
IF IT_BSEG-ACTYP = 'EXPENSE'.
V_END_EXP_DMBTR = V_FINAL_RWBTR + V_SUM_TAX.
IF V_END_EXP_DMBTR IS NOT INITIAL.
IT_FINAL-WRBTR = V_END_EXP_DMBTR.
ENDIF.
ENDIF.
IF IT_BSEG-ACTYP = 'CAPITAL'.
V_END_CAP_DMBTR = V_FINAL_RWBTR + V_SUM_TAX.
IF V_END_EXP_DMBTR IS NOT INITIAL.
IT_FINAL-WRBTR = V_END_EXP_DMBTR.
ENDIF.
ENDIF.
IF IT_BSEG-ACTYP = 'TAX'.
SUM.
V_SUM_TAX = IT_FINAL-WRBTR.
ENDIF.
ENDAT.
******************End for Tax Logic******************
IF IT_BSEG-ACTYP = 'TAX'.
MOVE C_EXPENSE TO IT_FINAL-ACTYP.
ELSE.
MOVE IT_BSEG-ACTYP TO IT_FINAL-ACTYP.
ENDIF.
IT_FINAL-BELNR = IT_BSEG-BELNR.
APPEND IT_FINAL.
CLEAR IT_FINAL.
ENDLOOP.
CLEAR V_BVORG.
CLEAR IT_FINAL.
ENDLOOP.
ENDLOOP.
ENDFORM. " final_fetch
*& Form gl_offsetting
text
--> p1 text
<-- p2 text
FORM GL_OFFSETTING .
MOVE IT_BSEG-HKONT TO IT_FINAL-HKONT.
MOVE IT_BSEG-WRBTR TO IT_FINAL-WRBTR.
MOVE IT_BSEG-BUKRS TO IT_FINAL-BUKRS.
ENDFORM. " gl_offsetting
Thanks,
AnithaAlso the following code is not performant:
LOOP AT IT_BKPF INTO WA_BKPF.
MOVE WA_BKPF-BVORG TO V_BVORG.
********Fetch HKONT DMBTR BUKRS from BSEG Table**********************
SELECT BUKRS
BELNR
HKONT
DMBTR
SHKZG
GJAHR
EBELN
EBELP FROM BSEG
INTO CORRESPONDING FIELDS OF TABLE IT_BSEG1
WHERE BUKRS = V_BVORG+10(4)
AND BELNR = V_BVORG+0(10)
AND GJAHR = IT_BSEG-GJAHR.
IF IT_BSEG1-BELNR IS NOT INITIAL.
SELECT EBELN
EBELP
BELNR FROM BSEG INTO TABLE IT_PO_BSEG
FOR ALL ENTRIES IN IT_BSEG1
WHERE BELNR = IT_BSEG1-BELNR
AND SHKZG = 'S'.
ENDIF.
ENDLOOP.
For every record in it_bkpf you do a select on BSEG. As BSEG is very huge, this will decrease performance dramatically. It's better to use a for all entries of BKPF in your select on BSEG.
Also try to avoid " into corresponding fields of", as it generates abap overhead. Always store the exact number of fields to the internal table, in the correct order. -
I have a report on the opportunities subject area but the performance for this report is very slow.
I have included the external id but the output gets timed out always.
Is there a way to improve the performance for this report?
Edited by: user636400 on Aug 27, 2008 11:11 PMGarima,
You mentioned that you used the ID field in the report, but you are interested in the sum of values... do you really need to see each record int he report, or an aggregation of data by user? The ID column forces the report to return every record and then perform the aggregation. Without the ID, the query is able to leverage the database server to perform the aggregation rather than the report having to calculate it over the entire dataset.
Look for columns in your report that are unique at the record level and remove those first, then as Alex said, add them back in one at a time and you will quickly find the column that is causing the report to time out.
Also, this message recently went out to all primary contacts:
We have discovered a product defect that enables Oracle CRM On Demand users to submit real-time reports that take longer than 10 minutes to run. When this occurs, there is the potential for performance degradation for all users who are co-located on your Pod.
A fix for this defect will be rolled-out across our entire fleet over the next eight weeks. After this fix is deployed to your Pod, any real-time report that fails to complete within 10 minutes will be terminated and will result in the display of the following error message: "The user request exceeded the maximum query governing execution time.”
Note that historical reports are unaffected by this fix. Should you have any real-time reports which exceed the 10 minute window, then you need to set them up as historical reports using Analytics. Alternatively, you can continue to run them as real-time reports but must reduce the amount of data selected using filters, column prompts, dashboard prompts or report filter chains so that the report completes within the 10 minute window.
Regards,
Mike L.
Maybe you are looking for
-
i am trying to upgrade to yosemite (for imac) from version 10.6.8 but even though i have 70gb available on my hard drive it wont let me upgrade because it says i dont have enough memory!! what can i do??
-
Can't move large sized video files to flash drive without changing to mac extended
I recently got 46 inch series 8000 smart tv. And today i bough a 16 gig hard drive so i could transfer my movie files to watch on the tv. Before tryin a large size movie i put a 756mb and it worked fine.. i then tried to put a 5 gig movie on the dri
-
Pre Checks before running Data Pump Export/Import
Hi, Oracle :-11.2 OS:- Windows Kindly share the pre-checks required for data pump export and import which should be followed by a DBA. Thanks
-
after completing a credit card sale on virtual merchant the option to print does not drop down as it did before i installed firefox on my new computer . the people at virtual merchant said it might be a pop-up prevention by firefox ...could this be t
-
Searched text hardly visible in Safari
When I want to look for a string of text on a website, using command-f, I have often problems to see the text Safari actually finds. Firefox has a brilliant solution for this, with the text showing up in a seperate task bar at the bottom of the scree