None manual way to Level the load of the Scheduled Reports

Hi,

We were advised by the Support team to look at the Scheduled Reports load and level that for better PPM performance.

Suggestion was to decrease the number of reports scheduled for the same date and time period, and not having more than 12 reports running on the same date and time.

This is a big manual task which will have to be reviewed at least weekly to address any changes to the scheduled run times. I would have thought that PPM should be able to handle the scheduled reports and by default split the executions up in more than one thread or at least allow for a None Manual way to level the load.

I understand that it's not really possible to auto level the load because users might have a requirement to have the reports ready by a specific time.

Do you have a better way to level out the reports scheduled for the day and where the reports are scheduled at the same time, level the report out by rescheduling the reports to start earlier for example with a 3 minute split between each report and ensure those reports does not run all at the same time but still ready before the original scheduled time.

Regards,

Alfred Puth

iOCO: Senior PPM Consultant

  • 0  

    Hi Alfred,

    There's no built-in way to control this - every admin might want it handled differently based on deployment architecture and acceptable load. 

    You could build some portlet that would list the highest number of concurrent reports at given times in the past, that should help identify possible performance bottlenecks.

    Also, I'm not sure about the proper way to manage this considering that we allow users to decide when reports should be run, and that their assumption is that the report will run at the time they're scheduling it. We're welcoming any idea about how to provide built-in capabilities to better manage such situations.

  • 0   in reply to   

    Hi Alfred,

    To add we share a few queries typically to look at the reports.

    Schedule report rates

    select rt.report_type_name, rs.REPORT_TYPE_ID, count(*), First_name, Last_name, RECURRENCE_PATTERN_CODE, REPEAT_FREQUENCY from knta_report_submissions rs, knta_users us, KNTA_REPORT_TYPES rt where rt.report_type_id = rs.REPORT_TYPE_ID and  rs.status_code = 'SCHEDULED' and rs.created_by=us.user_id and end_date is not null group by rs.REPORT_TYPE_ID, First_name, Last_name, RECURRENCE_PATTERN_CODE, REPEAT_FREQUENCY, rt.report_type_name order by count(*) desc 

    Schedule reports in the last day

    select TO_CHAR( a.SCHEDULED_TIME, 'YYYY-MM-DD (DAY) HH24:MI') SCHEDULED_TIMEB, count(*)
    from KNTA_REPORT_SUBMISSIONS a
    where a.SCHEDULED_TIME > sysdate - 1 and repeat_flag = 'Y' and status_code = 'SCHEDULED'
    having count(*) > 1
    group by a.SCHEDULED_TIME

    Schedule Report Rates last 30 days by minute

    select
    TO_CHAR( a.RELEASE_DATE, 'YYYY-MM-DD (DAY) HH24:MI') RELEASE_DATE, count(*)
    from KNTA_REPORT_SUBMISSIONS a
    where a.RELEASE_DATE > sysdate - 30
    having count(*) > 1
    group by TO_CHAR( a.RELEASE_DATE, 'YYYY-MM-DD (DAY) HH24:MI')

    Report Failure Rate

    select rt.report_type_name, rs.REPORT_TYPE_ID, rs.status_code, count(*) from knta_report_submissions rs, KNTA_REPORT_TYPES rt where rt.report_type_id = rs.REPORT_TYPE_ID and rs.status_code = 'CLOSED_FAILURE' and group by  rt.report_type_name, rs.REPORT_TYPE_ID, rs.status_code order by count(*) desc

    Maybe with Etienne's direction, you can submit an idea.  Potentially, an Administration console feature allowing overview of the report activity.

    Best regards,

    Chris 

  • 0 in reply to   

    Thanks Etienne and Chris for the response.

    I will setup some portlets using the SQL queries provided to do some portlets and enable the customer to better manage the scheduled reports.

    Regards,

    Alfred Puth

    iOCO: Senior PPM Consultant