SELECT
*
FROM
(
SELECT
to_char(begindttm, 'DDD') day_of_year,
COUNT(1) OVER(
PARTITION BY oprid, to_char(begindttm, 'DDD')
) count_for_user_in_day,
COUNT(1) OVER(
PARTITION BY to_char(begindttm, 'DDD'), to_char(begindttm, 'hh')
) count_in_day_hrs,
COUNT(1) OVER(
PARTITION BY to_char(begindttm, 'DDD')
) count_in_day,
trunc(EXTRACT(DAY FROM(a.enddttm - a.begindttm)) * 24 * 60 * 60 + EXTRACT(HOUR FROM(a.enddttm - a.begindttm)) * 60 * 60 + EXTRACT
(MINUTE FROM(a.enddttm - a.begindttm)) * 60 + EXTRACT(SECOND FROM(a.enddttm - a.begindttm))) AS run_time_sec,
trunc( EXTRACT(DAY FROM( a.begindttm - a.rqstdttm)) * 24 * 60 * 60 + EXTRACT(HOUR FROM(a.begindttm -a.rqstdttm)) * 60 * 60 + EXTRACT
(MINUTE FROM(a.begindttm - a.rqstdttm)) * 60 + EXTRACT(SECOND FROM(a.begindttm -a.rqstdttm))) AS wait_time_to_start_sec,
rqstdttm,
begindttm,
enddttm,
a.prcsinstance,
a.runcntlid,
a.oprid,
prcsname,
trunc(AVG(EXTRACT(DAY FROM(a.enddttm - a.begindttm)) * 24 * 60 * 60 + EXTRACT(HOUR FROM(a.enddttm - a.begindttm)) * 60
* 60 + EXTRACT(MINUTE FROM(a.enddttm - a.begindttm)) * 60 + EXTRACT(SECOND FROM(a.enddttm - a.begindttm))) OVER(
PARTITION BY prcsname, oprid,runcntlid
)) AS avg_run_time_sec_oprid_rntcl,
trunc(MIN(EXTRACT(DAY FROM(a.enddttm - a.begindttm)) * 24 * 60 * 60 + EXTRACT(HOUR FROM(a.enddttm - a.begindttm)) * 60
* 60 + EXTRACT(MINUTE FROM(a.enddttm - a.begindttm)) * 60 + EXTRACT(SECOND FROM(a.enddttm - a.begindttm))) OVER(
PARTITION BY prcsname, runcntlid
)) AS min_run_time_sec,
trunc(MAX(EXTRACT(DAY FROM(a.enddttm - a.begindttm)) * 24 * 60 * 60 + EXTRACT(HOUR FROM(a.enddttm - a.begindttm)) * 60
* 60 + EXTRACT(MINUTE FROM(a.enddttm - a.begindttm)) * 60 + EXTRACT(SECOND FROM(a.enddttm - a.begindttm))) OVER(
PARTITION BY prcsname, oprid, runcntlid
)) AS max_run_time_sec_opr_rntcl,
trunc(MAX(EXTRACT(DAY FROM(a.enddttm - a.begindttm)) * 24 * 60 * 60 + EXTRACT(HOUR FROM(a.enddttm - a.begindttm)) * 60
* 60 + EXTRACT(MINUTE FROM(a.enddttm - a.begindttm)) * 60 + EXTRACT(SECOND FROM(a.enddttm - a.begindttm))) OVER(
PARTITION BY prcsname, oprid,runcntlid
) /(60 * 60)) AS max_run_time_hrs_opr_rnctl,
COUNT(*) OVER(
PARTITION BY to_char(begindttm, 'YYYYMM'), oprid, prcsname, runcntlid
) AS ncount_run_opr_run_mth
,
COUNT(*) OVER(
PARTITION BY oprid, runcntlid
) AS user_base_opr_runcntl
FROM
psprcsrqst a
WHERE
prcsname = '<>'
AND runstatus = 9 and enddttm >sysdate-360
ORDER BY
begindttm
)
ORDER BY
max_run_time_sec_opr_rntcl desc, run_time_sec desc,
count_in_day DESC,
count_in_day_hrs DESC
Forum category: Forum / Hints, Tips & Gotchas
Forum thread: performance analysis for peoplesoft given process