Execution time of a report as a column
Hi Gurus,
Normally if you want to know the report execution time we will go to the Administrator-->manage sessions there we will find the time of execution of the respective reports.
Is it possible to add column(Execution Time) in the report and it as to show the time of that respective report what exactly showing in the manage sessions. Can we achieve this in OBIEE...?
Thanks,
Rafi
Hi Rafi,
If you have enabled usage tracking, make use if Total_time_sec column,
http://gerardnico.com/wiki/dat/obiee/usage_tracking_time_column
Regards,
Dpka
Similar Messages
-
Execution time for the report.
Dear All,
How do i determine the execution time of the report?
If i need to run some program then please do tell me how can i run the program too?
Thanks..Hi,
The thread below is telling you how to see query statistics in ST03N.
Re: BEx Query is executed how many times???
Regards. -
Execution time for web reports
Hello every one,
How to calculate execution time for web reports, for query execution we will go through RSRT, by giving query name and press execute + Debug button then select statistical data & Do not Cache buttons then press enter, after getting output press on back button, we will get duration of the query.....
But my question is , can we calculate execution time for webreport, if so can you please guide me.
and can you also tell me , if there is any RRI for one report, how to calculate execution time for these queries.
Ex : Query ABC have XYZ as its drilldown report , i need to calculate execution time for XYZ report via ABC report.
Thanks in advance,
Best Regards.
NP.Hi,
For reports executed in java web you can add the parameter &PROFILING=X
to the URL in order to record the execution time. Please have a look at SAP note 1048691 for further information.
Best regards,
Janine -
BO 3.1 SP3 - "Execution Time" query for reports has been changed?
Hi,
We can see BO XI 3.1 SP3, the execution time for a report is faster. is it using BOXI Enterprise APIs to determine the start and end? How is calculated?
thx
auroraHi,
this forum is for the SAP BusinessObjects BI Solution Architecture. I would suggest you post your question into the forum for the corresponding product that you are using - in your case BusinessObjects Enterprise.
regards
Ingo Hilgefort -
How to find overall execution time for a report
Hi,
I want to know the total time duration which is taken by my Report. (To fetch(read) the data from database and to print them after filtering.
Can you please tell me a way to do so.
Thakns
Deepak SisodiaHi Deepak,
Open the report and refresh the report after successful retrival of data go in Report--Performance Information.
You will get all information related to report and execution time.
Thanks,
Sastry -
How to get the execution time of a Discoverer Report from qpp_stats table
Hello
by reading some threads on this forum I became aware of the information stored in eul5_qpp_stats table. I would like to know if I can use this table to determine the execution time of a worksheet. In particular it looks like the field qs_act_elap_time stores the actual elapsed time of each execution of specific worksheet: am I correct? If so, how is this value computed? What's the unit of measure? I assume it's seconds, but then I've seen that sometimes I get numbers with decimals.
For example I ran a worksheet and it took more than an hour to run, and the value I get in the qs_act_elap_time column is 2218.313.
Assuming the unit of measure was seconds than it would mean approx 37 mins. Is that the actual execution time of the query on the database? I guess the actual execution time on my Discoverer client was longer since some calculations were performed at the client level and not on the database.
I would really appreciate if you could shed some light on this topic.
Thanks and regards
GiovanniThanks a lot Rod for your prompt reply.
I agree with you about the accuracy of the data. Are you aware of any other way to track the execution times of Discoverer reports?
Thanks
Giovanni -
TO REDUCE THE EXECUTION TIME OF REPORT
HI,
CAN ANYONE TELL ME THAT, HOW CAN I REDUCE THE EXECUTION TIME OF THE REPORT. IS THERE ANY IDEA TO IMPROVE THE PERFORMANCE OF THE REPORT.Hi Santosh,
Good check out the following documentation
<b>Performance tuning</b>
For all entries
Nested selects
Select using JOINS
Use the selection criteria
Use the aggregated functions
Select with view
Select with index support
Select Into table
Select with selection list
Key access to multiple lines
Copying internal tables
Modifying a set of lines
Deleting a sequence of lines
Linear search vs. binary
Comparison of internal tables
Modify selected components
Appending two internal tables
Deleting a set of lines
Tools available in SAP to pin-point a performance problem
<b>Optimizing the load of the database</b>
For all entries
The for all entries creates a where clause, where all the entries in the driver table are combined with OR. If the number of entries in the driver table is larger than rsdb/max_blocking_factor, several similar SQL statements are executed to limit the length of the WHERE clause.
The plus
Large amount of data
Mixing processing and reading of data
Fast internal reprocessing of data
Fast
The Minus
Difficult to program/understand
Memory could be critical (use FREE or PACKAGE size)
Some steps that might make FOR ALL ENTRIES more efficient:
Removing duplicates from the the driver table
Sorting the driver table
If possible, convert the data in the driver table to ranges so a BETWEEN statement is used instead of and OR statement:
FOR ALL ENTRIES IN i_tab
WHERE mykey >= i_tab-low and
mykey <= i_tab-high.
Nested selects
The plus:
Small amount of data
Mixing processing and reading of data
Easy to code - and understand
The minus:
Large amount of data
when mixed processing isnt needed
Performance killer no. 1
Select using JOINS
The plus
Very large amount of data
Similar to Nested selects - when the accesses are planned by the programmer
In some cases the fastest
Not so memory critical
The minus
Very difficult to program/understand
Mixing processing and reading of data not possible
Use the selection criteria
SELECT * FROM SBOOK.
CHECK: SBOOK-CARRID = 'LH' AND
SBOOK-CONNID = '0400'.
ENDSELECT.
SELECT * FROM SBOOK
WHERE CARRID = 'LH' AND
CONNID = '0400'.
ENDSELECT.
Use the aggregated functions
C4A = '000'.
SELECT * FROM T100
WHERE SPRSL = 'D' AND
ARBGB = '00'.
CHECK: T100-MSGNR > C4A.
C4A = T100-MSGNR.
ENDSELECT.
SELECT MAX( MSGNR ) FROM T100 INTO C4A
WHERE SPRSL = 'D' AND
ARBGB = '00'.
Select with view
SELECT * FROM DD01L
WHERE DOMNAME LIKE 'CHAR%'
AND AS4LOCAL = 'A'.
SELECT SINGLE * FROM DD01T
WHERE DOMNAME = DD01L-DOMNAME
AND AS4LOCAL = 'A'
AND AS4VERS = DD01L-AS4VERS
AND DDLANGUAGE = SY-LANGU.
ENDSELECT.
SELECT * FROM DD01V
WHERE DOMNAME LIKE 'CHAR%'
AND DDLANGUAGE = SY-LANGU.
ENDSELECT.
Select with index support
SELECT * FROM T100
WHERE ARBGB = '00'
AND MSGNR = '999'.
ENDSELECT.
SELECT * FROM T002.
SELECT * FROM T100
WHERE SPRSL = T002-SPRAS
AND ARBGB = '00'
AND MSGNR = '999'.
ENDSELECT.
ENDSELECT.
Select Into table
REFRESH X006.
SELECT * FROM T006 INTO X006.
APPEND X006.
ENDSELECT
SELECT * FROM T006 INTO TABLE X006.
Select with selection list
SELECT * FROM DD01L
WHERE DOMNAME LIKE 'CHAR%'
AND AS4LOCAL = 'A'.
ENDSELECT
SELECT DOMNAME FROM DD01L
INTO DD01L-DOMNAME
WHERE DOMNAME LIKE 'CHAR%'
AND AS4LOCAL = 'A'.
ENDSELECT
Key access to multiple lines
LOOP AT TAB.
CHECK TAB-K = KVAL.
ENDLOOP.
LOOP AT TAB WHERE K = KVAL.
ENDLOOP.
Copying internal tables
REFRESH TAB_DEST.
LOOP AT TAB_SRC INTO TAB_DEST.
APPEND TAB_DEST.
ENDLOOP.
TAB_DEST[] = TAB_SRC[].
Modifying a set of lines
LOOP AT TAB.
IF TAB-FLAG IS INITIAL.
TAB-FLAG = 'X'.
ENDIF.
MODIFY TAB.
ENDLOOP.
TAB-FLAG = 'X'.
MODIFY TAB TRANSPORTING FLAG
WHERE FLAG IS INITIAL.
Deleting a sequence of lines
DO 101 TIMES.
DELETE TAB_DEST INDEX 450.
ENDDO.
DELETE TAB_DEST FROM 450 TO 550.
Linear search vs. binary
READ TABLE TAB WITH KEY K = 'X'.
READ TABLE TAB WITH KEY K = 'X' BINARY SEARCH.
Comparison of internal tables
DESCRIBE TABLE: TAB1 LINES L1,
TAB2 LINES L2.
IF L1 <> L2.
TAB_DIFFERENT = 'X'.
ELSE.
TAB_DIFFERENT = SPACE.
LOOP AT TAB1.
READ TABLE TAB2 INDEX SY-TABIX.
IF TAB1 <> TAB2.
TAB_DIFFERENT = 'X'. EXIT.
ENDIF.
ENDLOOP.
ENDIF.
IF TAB_DIFFERENT = SPACE.
ENDIF.
IF TAB1[] = TAB2[].
ENDIF.
Modify selected components
LOOP AT TAB.
TAB-DATE = SY-DATUM.
MODIFY TAB.
ENDLOOP.
WA-DATE = SY-DATUM.
LOOP AT TAB.
MODIFY TAB FROM WA TRANSPORTING DATE.
ENDLOOP.
Appending two internal tables
LOOP AT TAB_SRC.
APPEND TAB_SRC TO TAB_DEST.
ENDLOOP
APPEND LINES OF TAB_SRC TO TAB_DEST.
Deleting a set of lines
LOOP AT TAB_DEST WHERE K = KVAL.
DELETE TAB_DEST.
ENDLOOP
DELETE TAB_DEST WHERE K = KVAL.
Tools available in SAP to pin-point a performance problem
The runtime analysis (SE30)
SQL Trace (ST05)
Tips and Tricks tool
The performance database
Optimizing the load of the database
Using table buffering
Using buffered tables improves the performance considerably. Note that in some cases a stament can not be used with a buffered table, so when using these staments the buffer will be bypassed. These staments are:
Select DISTINCT
ORDER BY / GROUP BY / HAVING clause
Any WHERE clasuse that contains a subquery or IS NULL expression
JOIN s
A SELECT... FOR UPDATE
If you wnat to explicitly bypass the bufer, use the BYPASS BUFFER addition to the SELECR clause.
Use the ABAP SORT Clause Instead of ORDER BY
The ORDER BY clause is executed on the database server while the ABAP SORT statement is executed on the application server. The datbase server will usually be the bottleneck, so sometimes it is better to move thje sort from the datsbase server to the application server.
If you are not sorting by the primary key ( E.g. using the ORDER BY PRIMARY key statement) but are sorting by another key, it could be better to use the ABAP SORT stament to sort the data in an internal table. Note however that for very large result sets it might not be a feasible solution and you would want to let the datbase server sort it.
Avoid ther SELECT DISTINCT Statement
As with the ORDER BY clause it could be better to avoid using SELECT DISTINCT, if some of the fields are not part of an index. Instead use ABAP SORT + DELETE ADJACENT DUPLICATES on an internal table, to delete duplciate rows.
Good Luck and thanks
AK -
Reduce execution time with selects
Hi,
I have to reduce the execution time in a report, most of the consumed time is in the select query.
I have a table, gt_result:
DATA: BEGIN OF gwa_result,
tknum LIKE vttk-tknum,
stabf LIKE vttk-stabf,
shtyp LIKE vttk-shtyp,
route LIKE vttk-route,
vsart LIKE vttk-vsart,
signi LIKE vttk-signi,
dtabf LIKE vttk-dtabf,
vbeln LIKE likp-vbeln,
/bshm/le_nr_cust LIKE likp-/bshm/le_nr_cust,
vkorg LIKE likp-vkorg,
werks LIKE likp-werks,
regio LIKE kna1-regio,
land1 LIKE kna1-land1,
xegld LIKE t005-xegld,
intca LIKE t005-intca,
bezei LIKE tvrot-bezei,
bezei1 LIKE t173t-bezei,
fecha(10) type c.
DATA: END OF gwa_result.
DATA: gt_result LIKE STANDARD TABLE OF gwa_result.
And the select query is this:
SELECT ktknum kstabf kshtyp kroute kvsart ksigni
k~dtabf
lvbeln l/bshm/le_nr_cust lvkorg lwerks nregio nland1 oxegld ointca
tbezei ttbezei
FROM vttk AS k
INNER JOIN vttp AS p ON ktknum = ptknum
INNER JOIN likp AS l ON pvbeln = lvbeln
INNER JOIN kna1 AS n ON lkunnr = nkunnr
INNER JOIN t005 AS o ON nland1 = oland1
INNER JOIN tvrot AS t ON troute = kroute AND t~spras = sy-langu
INNER JOIN t173t AS tt ON ttvsart = kvsart AND tt~spras = sy-langu
INTO TABLE gt_result
WHERE ktknum IN s_tknum AND ktplst IN s_tplst AND k~route IN s_route AND
k~erdat BETWEEN s_erdat-low AND s_erdat-high AND
l~/bshm/le_nr_cust <> ' ' "IS NOT NULL
AND k~stabf = 'X'
AND ktknum NOT IN ( SELECT tktknum FROM vttk AS tk
INNER JOIN vttp AS tp ON tktknum = tptknum
INNER JOIN likp AS tl ON tpvbeln = tlvbeln
WHERE l~/bshm/le_nr_cust IS NULL )
AND k~tknum NOT IN ( SELECT tknum FROM /bshs/ssm_eship )
AND ( o~xegld = ' '
OR ( o~xegld = 'X' AND
( ( n~land1 = 'ES'
AND ( nregio = '51' OR nregio = '52'
OR nregio = '35' OR nregio = '38' ) )
OR n~land1 = 'ESC' ) )
OR ointca = 'AD' OR ointca = 'GI' ).
Does somebody know how to reduce the execution time ?.
Thanks.Hi,
Try to remove the join. Use seperate selects as shown in example below and for the sake of selection, keep some key fields in your internal table.
Then once your final table is created, you can copy the table into GT_FINAL which will contain only fields you need.
EX
data : begin of it_likp occurs 0,
vbeln like likp-vbeln,
/bshm/le_nr_cust like likp-/bshm/le_nr_cust,
vkorg like likp-vkorg,
werks like likp-werks,
kunnr likr likp-kunnr,
end of it_likp.
data : begin of it_kna1 occurs 0,
kunnr like...
regio....
land1...
end of it_kna1 occurs 0,
Select tknum stabf shtyp route vsart signi dtabf
from VTTP
into table gt_result
WHERE tknum IN s_tknum AND
tplst IN s_tplst AND
route IN s_route AND
erdat BETWEEN s_erdat-low AND s_erdat-high.
select vbeln /bshm/le_nr_cust
vkorg werks kunnr
from likp
into table it_likp
for all entries in gt_result
where vbeln = gt_result-vbeln.
select kunnr
regio
land1
from kna1
into it_kna1
for all entries in it_likp.
similarly for other tables.
Then loop at gt result and read corresponding table and populate entire record :
loop at gt_result.
read table it_likp where vbeln = gt_result-vbeln.
if sy-subrc eq 0.
move corresponding fields of it_likp into gt_result.
gt_result-kunnr = it_likp-kunnr.
modify gt_result.
endif.
read table it_kna1 where kunnr = gt_result-vbeln.
if sy-subrc eq 0.
gt_result-regio = it-kna1-regio.
gt_result-land1 = it-kna1-land1.
modify gt_result.
endif.
endloop. -
Long execution times for TestStand conditional statements
I have two test stations – one here, one at the factory in China that has been operating for about a year. The test program uses TestStand 3.1 and calls primarily dll's developed using CVI. Up until a couple months ago, both test stations performed in a similar manner, then the computer at the factory died and was replaced with a new, faster computer. Now the same test sequence at the factory take three times as long to execute (30 min at the facotry, 10min here).
I have recoded the execution time at various point during the execution, and have found that the extra times seems to be occurring during the evaluation of conditional statements in TestStand (i.e. for loops, if statements, case statements). For example, one particular ‘for’ evaluation takes 30 ms on the test station here, but takes 400 ms at the test station at the factory (note: this is just the evaluation of the for condition, not the execution of the steps contained within the for loop).
The actual dll calls seem to be slightly faster with the new computer.
Also the ‘Module Times’ reported don’t seem to match the actual time for the module for the computer at the factory. For example, for the following piece of TestStand code:
Label1
Subsequence Call
Label2
I record the execution time to the report text in both Label1 and Label2. Subtracting one from the other gives me about 18 seconds. However the ‘Module Time’ recorded for ‘Subsequence Call’ is only 3.43 seconds.
Any body have any ideas why the long execution time with the new computer? I always setup the computers in exactly the same way, but maybe there is a TestStand setting somewhere that I have missed? Keep in mind, both test stations are running exactly the same revision of code.Got some more results from the factory this morning:
1) Task Manager shows that the TestExec.exe is the only thing using CPU to any significant degree. Also CPU Usage History show that the CPU Usage never reaches 100%.
2) I sent a new test program that will log test execution time in more places. Longer execution times are seen in nearly every area of the program, but one area where this is very dramatic is the time taken to return from one particular subsequence call. In this subsequence I log the time just before the <End Group> at then end of Main. There is nothing in Cleanup. I then log the time immediately after returning from this sequence. On the test system I have here this takes approximately 160 ms. On the test system at the factory this takes approximately 14.5 seconds! The program seems to be hanging here for some reason. Every time this function is called the same thing happens and for the same amount of time (and this function is called about 40 times in the test program, so this is kill me). -
Hi experts,
How to find out the execution time for WAD reports - I have been given the link for the WAD report.
and also how to find the execution time for the same report in PORTAL.
please helpHi,
https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/6dd54713-0c01-0010-8691-a3576b9a95d9 -
Report execution time should displayed in Local Time
Hi,
I have a query related to the Report execution time.
Our SAP Servers are available in US. The Servers are configured in US Time.
We have developed a Z report and used SY-UZEIT to display the Report Run Time.
we also have a plant in India.
When we execute this report for India Plant we are getting the execution run time for US.
But we need to get the run time in India Time.
Please help ASAP.
Regards,
ShankarHi Shankaran,
In your Z report, give a condition to check if the Plant is in India. If it is in india, then get SY-UZEIT and add the time difference to get IST.
Display this time on your report.
For implementing this, you will have to convert the Date and Time into Timestamp (use FM "LXHME_TIMESTAMP_CONVERT_INTO"), add the Time to this Time stamp (use FM "TIMESTAMP_DURATION_ADD" and convert it back to Date and Time (use FM "LXHME_TIMESTAMP_CONVERT_FROM").
Reward points if useful.
regards,
Raj
Message was edited by: Rajagopal G -
Report Execution time in NQQuery.log should be display in Milliseconds
Report Execution time in NQQuery.log should be display in Milliseconds.
For Example :
--- Logical Query Summary Stats: Elapsed time 0, Response time 0, Compilation time 0 (seconds)
Can we see the logical Query Summary Stats in milliseconds?
If so Where should i cofigure to populate this.No. If you query comes in less that 1 second then you got nothing to worry about. I haven't seen a single DWH where users would worry about queries returning in milliseconds.
-
Execution takes time for the report in Application
I have developed a report for payroll runresult.Its execution time is 3 minutes,but when i run in application it takes half an hour
The query i use is...
SELECT round((sum(nvl(DECODE(PET.element_name,'Basic Salary',ROUND(prrv.result_value,3),0),0))+
sum(nvl(DECODE(PET.element_name,'House Rent Allowance',ROUND(prrv.result_value,3),0),0))+
sum(nvl(DECODE(PET.element_name,'Transport Allowance',ROUND(prrv.result_value,3),0),0))+
sum(nvl(DECODE(PET.element_name,'Petrol Allowance',ROUND(prrv.result_value,3),0),0))+
sum(nvl(DECODE(PET.element_name,'Vehicle Allowance',ROUND(prrv.result_value,3),0),0)) +
sum(nvl(DECODE(PET.element_name,'Additional HRA',ROUND(prrv.result_value,3),0),0)) +
sum(nvl(DECODE(PET.element_name,'Other Allowance',ROUND(prrv.result_value,3),0),0))+
sum(nvl(DECODE(PET.element_name,'Carried Balance',ROUND(prrv.result_value,3),0),0))+
sum(nvl(DECODE(PET.element_name,'Mobile Allowance',ROUND(prrv.result_value,3),0),0)) +
sum(nvl(DECODE(PET.element_name,'Fixed Over Time',ROUND(prrv.result_value,3),0),0)) +
sum(nvl(DECODE(PET.element_name,'Rent Deduction',ROUND(prrv.result_value,3),0),0)) -
sum(nvl(DECODE(PET.element_name,'Vehicle Allowance Deducted',ROUND(prrv.result_value,3),0),0)) -
sum(nvl(DECODE(PET.element_name,'HRA Deducted',ROUND(prrv.result_value,3),0),0)) -
sum(nvl(DECODE(PET.element_name,'Rent Deduction',ROUND(prrv.result_value,3),0),0)) -
sum(nvl(DECODE(PET.element_name,'Insurance Deduction',ROUND(prrv.result_value,3),0),0)) +
sum(nvl(DECODE(PET.element_name,'Medical Insurance',ROUND(prrv.result_value,3),0),0)) +
sum(nvl(DECODE(PET.element_name,'Family Passage Allowance',ROUND(prrv.result_value,3),0),0)) +
sum(nvl(DECODE(PET.element_name,'Salik Allowance',ROUND(prrv.result_value,3),0),0)) -
sum(nvl(DECODE(PET.element_name,'Family Insurance Deduction',ROUND(prrv.result_value,3),0),0)) +
sum(nvl(DECODE(PET.element_name,'Fixed Incentive',ROUND(prrv.result_value,3),0),0)) +
sum(nvl(DECODE(PET.element_name,'Company Accomodation Provided',ROUND(prrv.result_value,3),0),0))-
sum(nvl(DECODE(PET.element_name,'Mess Deduction',ROUND(prrv.result_value,3),0),0))+
sum(nvl(DECODE(PET.element_name,'Normal Overtime',ROUND(prrv.result_value,3),0),0))+
sum(nvl(DECODE(PET.element_name,'Special Overtime',ROUND(prrv.result_value,3),0),0))+
sum(nvl(DECODE(PET.element_name,'Telephone Allowance',ROUND(prrv.result_value,3),0),0))+
sum(nvl(DECODE(PET.element_name,'Other Allowance',ROUND(prrv.result_value,3),0),0))+
sum(nvl(DECODE(PET.element_name,'Other Earnings',ROUND(prrv.result_value,3),0),0))-
sum(nvl(DECODE(PET.element_name,'Other Deductions',ROUND(prrv.result_value,3),0),0)) -
sum(nvl(DECODE(PET.element_name,'Salary Advance Recovery',ROUND(prrv.result_value,3),0),0))-
sum(nvl(DECODE(PET.element_name,'Air Ticket Refund',ROUND(prrv.result_value,3),0),0))-
sum(nvl(DECODE(PET.element_name,'Vehicle Fines and Charges',ROUND(prrv.result_value,3),0),0))-
sum(nvl(DECODE(PET.element_name,'Abroad Emergency Leave',ROUND(prrv.result_value,3),0),0))-
sum(nvl(DECODE(PET.element_name,'Abscond Leave',ROUND(prrv.result_value,3),0),0))-
sum(nvl(DECODE(PET.element_name,'Air Fare Paid',ROUND(prrv.result_value,3),0),0))-
sum(nvl(DECODE(PET.element_name,'Recovery Carried Balance',ROUND(prrv.result_value,3),0),0))-
sum(nvl(DECODE(PET.element_name,'Hajj Leave',ROUND(prrv.result_value,3),0),0))-
sum(nvl(DECODE(PET.element_name,'Local Leave',ROUND(prrv.result_value,3),0),0))-
sum(nvl(DECODE(PET.element_name,'Sick Leave Deduction',ROUND(prrv.result_value,3),0),0))-
sum(nvl(DECODE(PET.element_name,'Sick Leave Without certificate',ROUND(prrv.result_value,3),0),0))-
sum(nvl(DECODE(PET.element_name,'Round Off Deduction',ROUND(prrv.result_value,3),0),0))+
sum(nvl(DECODE(PET.element_name,'Round Off Earnings',ROUND(prrv.result_value,3),0),0))),0)Net_Salary,papf.national_identifier groupcode,papf.FULL_NAME,paav.effective_date,
haout.name costcentre,pg.name grade, pj.name designation ,paaf.ASSIGNMENT_NUMBER employee_number,decode(pop.org_payment_method_name,'RI_CASH','C','B')Payment
FROM pay_run_results_v prrv,pay_run_results prr,pay_assignment_actions paa,per_all_assignments_f paaf,per_all_people_f papf,hr_all_organization_units_tl haout,
per_grades pg, per_jobs pj,pay_assignment_actions_v paav,pay_personal_payment_methods_f ppp,pay_all_payrolls_f pap,pay_payroll_actions ppa,
pay_org_payment_methods_f_tl pop,pay_element_types_f PET
WHERE --prrv.assignment_action_id = 49449 and
ppp.assignment_id(+) = paa.assignment_id
AND pop.org_payment_method_id(+) = ppp.org_payment_method_id AND
paa.ASSIGNMENT_ACTION_ID=prrv.ASSIGNMENT_ACTION_ID and paaf.ASSIGNMENT_ID=paa.ASSIGNMENT_ID
and haout.organization_id=paaf.ORGANIZATION_ID
and papf.EMPLOYEE_NUMBER=paaf.ASSIGNMENT_NUMBER
AND prrv.run_result_id = prr.run_result_id
AND ppa.effective_date BETWEEN pet.effective_start_date
AND pet.effective_end_date
AND prr.element_type_id = pet.element_type_id
and prrv.CLASSIFICATION_NAME not like 'Info%'
-- and prrv.element_name not like 'Gross Salary%'
-- and prrv.element_name not like 'Annual%'
and pj.job_id(+)=paaf.job_id
and haout.name=nvl(:P_Dept,haout.name)
and ppa.PAYROLL_ACTION_ID=paa.PAYROLL_ACTION_ID
and pap.PAYROLL_ID=ppa.PAYROLL_ID
and paav.ASSIGNMENT_ID=paaf.ASSIGNMENT_ID
and paav.ASSIGNMENT_ACTION_ID=paa.ASSIGNMENT_ACTION_ID
and pap.PAYROLL_NAME=NVL(:P_PAYROLL_NAME,pap.PAYROLL_NAME)
--and papf.national_identifier = 03917
and paav.effective_date >= TO_DATE ('01-' || :p_start_date, 'DD-MON-YYYY')
AND paav.effective_date <= LAST_DAY (TO_DATE ('01-' || :p_start_date, 'DD-MON-YYYY'))
-- and paav.DATE_EARNED=to_char(:p_date,'DD-MON-YYYY')
and pg.grade_id(+)=paaf.grade_id group by papf.national_identifier,papf.FULL_NAME,paav.effective_date,
haout.name ,pg.name , pj.name,paaf.ASSIGNMENT_NUMBER,pop.org_payment_method_name,papf.employee_number
Cant analyse where it takes time...
Regards,
MeraI don't think that the "SUM" structure in the SELECT makes a difference in performance (And DO NOT use PL/SQL for this!) And as long as you SUM most PET.element_name values you do not need to filter by them.
But, of course, the solution of "Sven W." would make the code MUCH nicer (took me a while to get it) and the "format" of the join conditions would take anyone ages to maintain that code!
But your problem is that the execution differs massively right?
Do you do the same thing? E.g. bind variables in the interactive part? Do the variables have the same value?
Do you filter on the other variables like "P_DEPT" etc. ?
"and haout.name=nvl(:P_Dept,haout.name)"
The good thing is that you have an execution which makes you happy so you need to compare the SQL and the execution for both. Somewhere must be a difference. (Is the result the same by the way (just in case your parameters differ)?)
If the results and parameters are the same, then do you not work with parameters in the "interactive" test and ORACLE is choosing a different execution plan as it knows more about your question. If that's the case, try to hint the query so that it's using the desired execution plan when you work with parameters.
And how did you get that "execution plan" it's missing so much data and it's not formated. (put around it and check in "Preview" if it looks as desired)
-- andy -
I'm looking for a way to include the amount of time that a report took to create. I've looked at an option given in an existing thread:
Re: How to calculate total time taken by a report
but this method is extremely slow. I already have complaints about execution time and don't need another excuse added that it's taking longer to tell how long it runs. It seems there would a very simple, and quick, way of getting this information. I just want to put the execution time, or maybe just start and end time, on the trailer where I already list all of the parameters that were passed.
Any help on this would be much appreciated.Can someone from Oracle at least tell me if this can be done or not???
-
Report execution time is in milliseconds
My report execution time is in milliseconds.Where should i examine this time?
If u have permisssions to see the log..(logging level >2) then you can see your execution time in the following path
setting--->Administration------>Manage Sessions------>View Log
In that you can find different sections which can give your the execution time
-------------------- Physical query response time
-------------------- Physical Query Summary Stats
-------------------- Logical Query Summary Stats
Maybe you are looking for
-
Multiple Currency Payroll Payments for one Employee
Hello, We have a requirement of paying one employee in multiple currencies (i.e in Local currency and USD). This means that such employee has two bank accounts, i.e. Local Currency Account and USD Account. The costing of payroll costs is done in the
-
Officejet Pro 8600 Plus (new today - everything else working great), Vista 32-bit, HP desktop. After scanning documents and creating a PDF file (Save to file on my computer w/USB connection), using HP Scan, it does not append numbers in sequence to b
-
Syntax error (missing operator) in query expression works in sql
Hi guys, I am having a problem with this query in Access 2007, it runs fine in MSSQL. I get this error when I run it. [Macromedia][SequeLink JDBC Driver][ODBC Socket][Microsoft][ODBC Microsoft Access Driver] Syntax error (missing operator) in query e
-
Hi, So I have been using GoDaddy email (IMAP) with Mail.app for quite sometime, and it has always had issues compared to let's say a Gmail account: 1. Syncing is horribly slow and everytime I go to a folder other than Inbox I must wait minutes while
-
How can I buy a student version of Design Standard?
I have downloaded a trial of Design Standard cs6 and I would like to activate it as a student version. When I click on the link to buy the software it tells me that I can't buy it in my country. When I go to the specific NZ page and click the link to