Monday, July 19, 2021

 Concurrent Request Analytics. 


Find number of concurrent requests submitted month wise. 


select to_char(a.requested_start_date,'yymon'), count(*) from 

fnd_concurrent_requests a

--where concurrent_program_id in ('20428','20821') use to find for a particular program

GROUP BY to_char(a.requested_start_date,'yymon')  order by to_char(a.requested_start_date,'yymon') desc;


Find size of files per extension

Note: change grep to include month year file or file extension 

cd $APPLCSF

Size of files per month and per type 

ls -ltr | grep Jul |grep RTF | awk '{SUM+=$5}END{print SUM/1024/1024/1024}'

ls -ltr | grep Jun |grep RTF | awk '{SUM+=$5}END{print SUM/1024/1024/1024}'

ls -ltr | grep Jun |grep xml | awk '{SUM+=$5}END{print SUM/1024/1024/1024}'

ls -ltr | grep Jun |grep txt | awk '{SUM+=$5}END{print SUM/1024/1024/1024}'

ls -ltr | grep Jun |grep xls | awk '{SUM+=$5}END{print SUM/1024/1024/1024}'

size of file per day

ls -ltr | grep Aug |grep xls |awk '{a[$6 $7]+=$5;}END{for(i in a)print i", "a[i];}'

Find concurrent requests older than 60 days with completion duration 

SELECT

      f.request_id ,

      pt.user_concurrent_program_name user_conc_program_name,

      f.actual_start_date start_on,

      f.actual_completion_date end_on,

      floor(((f.actual_completion_date-f.actual_start_date)

        *24*60*60)/3600)

        || ' HOURS ' ||

        floor((((f.actual_completion_date-f.actual_start_date)

        *24*60*60) -

        floor(((f.actual_completion_date-f.actual_start_date)

        *24*60*60)/3600)*3600)/60)

        || ' MINUTES ' ||

        round((((f.actual_completion_date-f.actual_start_date)

        *24*60*60) -

        floor(((f.actual_completion_date-f.actual_start_date)

        *24*60*60)/3600)*3600 -

        (floor((((f.actual_completion_date-f.actual_start_date)

        *24*60*60) -

        floor(((f.actual_completion_date-f.actual_start_date)

        *24*60*60)/3600)*3600)/60)*60) ))

        || ' SECS ' time_difference,

      p.concurrent_program_name concurrent_program_name,

      decode(f.phase_code,'R','Running','C','Complete',f.phase_code) Phase,

      f.status_code

from  apps.fnd_concurrent_programs p,

      apps.fnd_concurrent_programs_tl pt,

      apps.fnd_concurrent_requests f

where f.concurrent_program_id = p.concurrent_program_id

      and f.program_application_id = p.application_id

      and f.concurrent_program_id = pt.concurrent_program_id

      and f.program_application_id = pt.application_id

      AND pt.language = USERENV('Lang')

      and f.actual_start_date is not null

      and f.actual_start_date > sysdate - 60

      and (floor((((f.actual_completion_date-f.actual_start_date)*24*60*60)/3600)*3600)/60) > 60

order by

      f.actual_start_date desc; 


Find average, min, max for concurrent program in last 60 days

SELECT

      pt.user_concurrent_program_name user_conc_program_name,

      decode(f.phase_code,'R','Running','C','Complete',f.phase_code) Phase,

      count(*),

  

      TRUNC (AVG (ACTUAL_COMPLETION_DATE - ACTUAL_START_DATE))

         || ' Days'

         || ' + '

         || TO_CHAR (

               TRUNC (SYSDATE)

               + NUMTODSINTERVAL (

                    AVG ( (ACTUAL_COMPLETION_DATE - ACTUAL_START_DATE))

                    * 86400,

                    'second'),

               'HH24:MI:SS')

            "AVERAGE",

            

        TRUNC (MIN (ACTUAL_COMPLETION_DATE - ACTUAL_START_DATE))

         || ' Days'

         || ' + '

         || TO_CHAR (

               TRUNC (SYSDATE)

               + NUMTODSINTERVAL (

                    MIN ( (ACTUAL_COMPLETION_DATE - ACTUAL_START_DATE))

                    * 86400,

                    'second'),

               'HH24:MI:SS')

            "Min",

            

            TRUNC (MAX (ACTUAL_COMPLETION_DATE - ACTUAL_START_DATE))

         || ' Days'

         || ' + '

         || TO_CHAR (

               TRUNC (SYSDATE)

               + NUMTODSINTERVAL (

                    MAX ( (ACTUAL_COMPLETION_DATE - ACTUAL_START_DATE))

                    * 86400,

                    'second'),

               'HH24:MI:SS')

            "Max"

from  apps.fnd_concurrent_programs p,

      apps.fnd_concurrent_programs_tl pt,

      apps.fnd_concurrent_requests f

where f.concurrent_program_id = p.concurrent_program_id

      and f.program_application_id = p.application_id

      and f.concurrent_program_id = pt.concurrent_program_id

      and f.program_application_id = pt.application_id

      AND pt.language = USERENV('Lang')

      and f.actual_start_date is not null

      and f.actual_start_date > sysdate - 60

      and (floor((((f.actual_completion_date-f.actual_start_date)*24*60*60)/3600)*3600)/60) > 60

  group by pt.user_concurrent_program_name, f.phase_code ; 


1 comment:

  1. Please write few articles which are helpful for DBA for cloud & dev ops point of view and I am eagerly waiting for your article

    ReplyDelete

Oracle E-business suite logs clean up

 Oracle E-business suite logs clean up #!/bin/bash cd $EBS_DOMAIN_HOME find $EBS_DOMAIN_HOME -type f -path "*/logs/*.log?*" -mtime...