SlideShare une entreprise Scribd logo
1  sur  29
Télécharger pour lire hors ligne
Biju Thomas
                                                             Oracle Solutions Architect
                                                             OneNeck IT Services Corp.




Tweets: @biju_thomas
© 2012 OneNeck IT Services Corporation.   All rights reserved.
About the Speaker

    • Oracle Solutions Architect at OneNeck IT Services
    • More than 19 years of Oracle Database Experience
    • Working with Oracle EBS databases and applications past 5 years
    • EBS expertise in setting up new environments, automate cloning,
           troubleshooting and performance tuning

    • Author of Oracle11g OCA, co-author of Oracle10g, 9i, 8i OCP
           certification guides published by Sybex/Wiley.

    • First EBS related presentation!
                      Please provide feedback.




© 2012 OneNeck IT Services Corporation. All rights reserved.            Page 2
Message…



                                           Do not shy away from exploring
                                                    the database…

            • Lot of unanswered questions at the EBS application side can be
                  answered at the database.

            • Newer releases of databases collect large amount of performance
                  related information.

            • “Apps DBA” and “Core DBA” are not two different job functions. I
                  see “Apps DBA” as an extension to Oracle DBA. You have
                  additional EBS skills over Oracle DBA.

© 2012 OneNeck IT Services Corporation. All rights reserved.                     Page 3
Agenda


         • Finding expensive SQL – using AWR
         • Tying the SQL to an EBS job
         • Few major performance issues & resolution
         • Periodic database maintenance for Concurrent Job
               Performance
         • Oracle provided periodic EBS maintenance jobs
         • Multiple Concurrent Manager lanes for performance




© 2012 OneNeck IT Services Corporation. All rights reserved.   Page 4
AWR [Automatic Workload
   Repository] – Quick Overview

          • Introduced in Oracle 10g
          • AWR is automatically installed and enabled, snapshot collection is
                 scheduled
          •      Information automatically populated by database – but need license
                 to use information.
          •      Baseline snapshots, compare two time periods
          •      Use DBA_HIST_ views
          •      Default keeps 7 days
                 information – need to increase
                 to at least a month to help
                 analysis
          •      Fully integrated in OEM
          •      Captures resource intensive
                 SQLs, Object usage statistics

         @$ORACLE_HOME/rdbms/admin/awrrpt.sql, awrsqrpt.sql, awrddrpt.sql
© 2012 OneNeck IT Services Corporation. All rights reserved.                          Page 5
The “Dirty” SQL

                                             SELECT * FROM (
   •     High buffer gets – LIO               SELECT sql_id,
   •     Use DBA_HIST_SQLSTAT                       module,
                                                   SUM (nvl(buffer_gets_delta,0)) bget,
   •     Captures the statistics information       SUM (nvl(executions_delta,0)) exec,
         from V$SQL                                SUM (nvl(cpu_time_delta,0)) cput,
   •     Tie in the SQL_ID to                      SUM (nvl(elapsed_time_delta,0)) elap,
                                                   SUM (nvl(rows_processed_delta,0)) rowsp,
         DBA_HIST_SQLTEXT for SQL                  SUM (nvl(sorts_delta,0)) sorts,
         statement.                                SUM (nvl(disk_reads_delta,0)) diskread
   •     Tie in the SQL_ID to                    FROM dba_hist_sqlstat
         DBA_HIST_ACTIVE_SESS_HISTORY WHERE dbid = V_DBID
                                                   AND instance_number = V_INST
         for User id and Program name.             AND snap_id between
   •     May also use OEM to find more                   V_SNAP_B and V_SNAP_E
         information on the SQL_ID.           GROUP BY module, sql_id
                                              --ORDER BY bget/nvl(nullif(exec,0),1) desc)
                                             ORDER BY bget desc)
                                             WHERE ROWNUM < 21



© 2012 OneNeck IT Services Corporation. All rights reserved.                             Page 6
“Dirty” SQL Example




© 2012 OneNeck IT Services Corporation. All rights reserved.   Page 7
Finding Concurrent Program

       • For all EBS standard programs, “MODULE” in AWR (v$session) is the
              Concurrent Program Name.
       •      Details on the program and request run times can be obtained from
              FND_CONCURRENT_PROGRAMS and FND_CONCURRENT_REQUESTS
              using the MODULE.




© 2012 OneNeck IT Services Corporation. All rights reserved.                      Page 8
More Info on SQL from OEM




© 2012 OneNeck IT Services Corporation. All rights reserved.   Page 9
Identifying Job Slowness Issue
   Using ASH

         • User complains concurrent job “Item Cost Import” ran longer and
           provided request id.
         • FND_CONCURRENT_REQUESTS has details including start and end
           time.
         • Find the concurrent program name of the request, and search ASH for
           module during the timeframe.




© 2012 OneNeck IT Services Corporation. All rights reserved.                 Page 10
The ASH Report




      @$ORACLE_HOME/rdbms/admin/ashrpt.sql

© 2012 OneNeck IT Services Corporation. All rights reserved.   Page 11
Identifying Session Details
   Using ASH
    • ASH report also shows blocking sessions during the
           window selected. Filtering the report for a specific session
           gives more details.




© 2012 OneNeck IT Services Corporation. All rights reserved.              Page 12
AWR/ASH Not Substitute for
   10046 Trace
         • AWR cannot replace Session trace, but is a quick analysis tool for
           performance issues or for trending.
         • Favorite trace interpretation utility is “Trace Analyzer” – which is
           “tkprof on steroids”
         • Trace Analyzer reads a raw SQL Trace generated by standard
           SQL Trace or by EVENT 10046 (Level 4, 8 or 12), and generates a
           detailed HTML report with performance details, including bind values.
         • Trace Analyzer is available from MetaLink, see note # 224270.1 for
           download and install instructions.




© 2012 OneNeck IT Services Corporation. All rights reserved.                       Page 13
My Most Used SQL Query
      SELECT DISTINCT Substr (fcpv.concurrent_program_name
                           || ' - ' || fcpv.user_concurrent_program_name, 1, 60) program,
                 fu.user_name, fu.description who, fcr.request_id, fcr.parent_request_id,
                 fcr.requested_start_date, fcr.actual_start_date, fcr.actual_completion_date,
                 Numtodsinterval(fcr.actual_completion_date - fcr.actual_start_date, 'day') duration,
                 fcr.argument_text, phase_code, status_code,
                 Decode (fcr.phase_code, 'P', 'Pending', 'R', 'Running', 'C', 'Completed', phase_code) phase,
                 Decode (fcr.status_code, 'A', 'Waiting', 'B', 'Resuming', 'C', 'Normal‘, 'D', 'Cancelled', 'E', 'Error',
                                          'G', 'Warning', 'H', 'On Hold', 'I', 'Normal', 'M', 'No Manager', 'P', 'Scheduled',
                                          'Q', 'Standby', 'R', 'Normal', 'S', 'Suspended', 'T', 'Terminating', 'U', 'Disabled',
                                          'W', 'Paused', 'X', 'Terminated', 'Z', 'Waiting') status,
                 fcr.completion_text
      FROM     apps.fnd_concurrent_requests fcr,
             apps.fnd_concurrent_programs_tl fcpt,
             apps.fnd_concurrent_programs_vl fcpv,
             apps.fnd_user fu
      WHERE fcr.concurrent_program_id = fcpt.concurrent_program_id
             AND ( fcr.concurrent_program_id = fcpv.concurrent_program_id
             AND fcr.program_application_id = fcpv.application_id )
             AND fcr.requested_by = fu.user_id
          -- AND fcr.actual_start_date >= SYSDATE - 1
          -- and to_date('04/02/2012 01:05:00','MM/DD/YYYY HH24:MI:SS') between fcr.actual_start_date and
           fcr.actual_completion_date
             AND fcpt.USER_CONCURRENT_PROGRAM_NAME LIKE 'Item Cost I%'
          -- AND fcr.request_id =38664594
          -- AND fcpv.Concurrent_Program_Name like 'INCOIN%'
          -- and argument_text like '%MDS_MRP%'
          -- and TRUNC((fcr.ACTUAL_COMPLETION_DATE - fcr.ACTUAL_START_DATE)*24) > 2/24
          -- and fcr.phase_code = 'P'
          -- and fcr.status_code in ('E')
          -- and fcr.requested_by != 0
          -- and fcr.actual_start_date is null
          -- and fcr.requested_start_date < sysdate
      ORDER BY fcr.ACTUAL_START_DATE desc


© 2012 OneNeck IT Services Corporation. All rights reserved.                                                                 Page 14
Variations of Favorite Query –
   Running Requests with SQL
   and Session Lock Info
    SELECT fcr.Request_Id Request_id, fcr.parent_request_id parent_req,
             fu.User_name, substr(fu.description, 1,30) user_desc, s.sid || ', ' || s.serial# SIDSERIAL,
             fcpv.Concurrent_Program_Name|| ' - ' || Fcpv.User_Concurrent_Program_Name Program,
             TO_CHAR (fcr.actual_start_date, 'mm/dd hh24:mi') start_time, fcr.requested_start_date,
                numtodsinterval(sysdate-fcr.actual_start_date,'day') duration,               fcr.argument_text,
                p.spid,           fpro.os_process_id,             phase_code, status_code,
                qt.user_concurrent_queue_name,      s.lockwait, s.sql_id,         s.module
         FROM apps.Fnd_Concurrent_Queues Fcq,
              apps.fnd_concurrent_queues_tl qt,
              apps.Fnd_Concurrent_Requests Fcr,
              apps.Fnd_Concurrent_Programs Fcp,
              apps.Fnd_User Fu,
              apps.Fnd_Concurrent_Processes Fpro,
                v$session s,
                v$process p,
                apps.Fnd_Concurrent_Programs_Vl Fcpv
        WHERE          status_Code = 'R'
                AND   s.paddr = p.addr
                AND   fcr.requested_by = user_id
                AND   fcq.application_id = qt.application_id
                AND   fcq.concurrent_queue_id = qt.concurrent_queue_id
                AND   USERENV ('lang') = qt.language
                AND fcr.os_process_id = s.process
             AND fcr.Controlling_Manager = Concurrent_Process_Id
             AND (fcq.concurrent_queue_id = fpro.concurrent_queue_id
                  AND fcq.application_id = fpro.queue_application_id)
             AND (fcr.concurrent_program_id = fcp.concurrent_program_id
                  AND fcr.program_application_id = fcp.application_id)
             AND (fcr.concurrent_program_id = fcpv.concurrent_program_id
                  AND fcr.program_application_id = fcpv.application_id)
    ORDER BY fcr.actual_start_date;


© 2012 OneNeck IT Services Corporation. All rights reserved.                                                      Page 15
Variations of Favorite Query –
   Runaway Concurrent DB
   Sessions
    SELECT    fcr.request_id, fu.user_name, p.spid, s.sid ||', ‘ || s.serial# sidserial, s.module,
             Substr(fcpv.concurrent_program_name ||' - ' || fcpv.user_concurrent_program_name, 1, 46) program,
             To_char(fcr.actual_start_date, 'mm/dd hh24:mi:ss')     CM_Job_start_time,
             To_char(s.logon_time, 'mm/dd hh24:mi:ss')     Session_login_time,
             phase_code, status_code, To_char(Trunc(SYSDATE) + ( SYSDATE - fcr.actual_start_date ), 'hh24:mi:ss') duration
    FROM     apps.fnd_concurrent_queues fcq,
             apps.fnd_concurrent_queues_tl qt,
             apps.fnd_concurrent_requests fcr,
             apps.fnd_concurrent_programs fcp,
             apps.fnd_user fu,
             apps.fnd_concurrent_processes fpro,
             v$session s,
             v$process p,
             apps.fnd_concurrent_programs_vl fcpv
    WHERE    phase_code = 'C' AND status_code = 'X'
             AND s.paddr = p.addr
             AND fcr.requested_by = user_id
             AND fcq.application_id = qt.application_id
             AND fcq.concurrent_queue_id = qt.concurrent_queue_id
             AND Userenv('lang') = qt.language
             AND fcr.os_process_id = s.process
             AND fcr.controlling_manager = concurrent_process_id
             AND ( fcq.concurrent_queue_id = fpro.concurrent_queue_id
                   AND fcq.application_id = fpro.queue_application_id )
             AND ( fcr.concurrent_program_id = fcp.concurrent_program_id
                   AND fcr.program_application_id = fcp.application_id )
             AND ( fcr.concurrent_program_id = fcpv.concurrent_program_id
                   AND fcr.program_application_id = fcpv.application_id )
             and fcpv.concurrent_program_name = s.module
    ORDER    BY fcr.actual_start_date;




© 2012 OneNeck IT Services Corporation. All rights reserved.                                                                 Page 16
Performance Issues Identified
   and Fixed
         • Few performance issues identified and fixed
               using AWR/ASH method…
                   Update Standard Costs
                   Calculate Plan Performance Indicators
                   MRP
                   Concurrent Debug
                   ATP
                   Custom Index / Table INITRANS




© 2012 OneNeck IT Services Corporation. All rights reserved.   Page 17
Perf Issue: Update Standard
   Costs Program

         • Large LIO on BOM.CST_STD_COST_ADJ_VALUES
                table noticed.
         •     Coming from CMCICU
         •     SQL happened to be typical optimizer statistics collection
         •     Every time program runs, 10% statistics on table was run
               – multiple users run the program multiple times a day, on
               a table with over 80 million rows!
         •     Fixed issue by setting profile “CST: Cost update-
               Gather Statistics” to “N”.
         •     Weekly GATHER and daily GATHER_AUTO statistics
               scheduled in DB, hence this stat collection was
               unnecessary.

© 2012 OneNeck IT Services Corporation. All rights reserved.            Page 18
Perf Issue: Calculate Plan
   Performance Indicators


         • Large LIO on MRP.MRP_BIS_INV_DETAIL table.
         • Several deletes and inserts on the table multiple times a
               day. Table had multiple million rows.
         •     Coming from module MRPCBIS
         •     Per metalink Note 783088.1 this job is no longer needed in
               Master Scheduling / MRP.
         •     Turn off calculation using profile “MRP: Calculate Plan
               Performance” to “No”.
         •     Truncate tables MRP_BIS_INV_DETAIL and
               MRP_BIS_RES_SUMMARY.


© 2012 OneNeck IT Services Corporation. All rights reserved.           Page 19
Perf Issue: Materials
   Requirement Planning

    • The purpose of material planning is to balance material
           supply to demand by simulating the future – very critical
           process in few of our environments.
    •      Performance improved by setting the following profile
           values…
                  MRP:Planning Manager Batch Size = 1000
                  MRP:Planning Manager Max Workers = 10
                  MRP:Purge Batch Size = 600,000
                  MRP:Snapshot Workers = 10

    • STANDARD or “specialized” manager should have at least
           “(2 x <Snapshot Workers>) + 6”



© 2012 OneNeck IT Services Corporation. All rights reserved.           Page 20
Perf Issue: Debug and Trace

       • There were many profiles at site level set to “debug” mode.
       • Revealed by large number of I/O against
         FND_CONCURRENT_DEBUG_INFO and FND_LOG_MESSAGES
       • Turn off tracing and debugging in production unless troubleshooting
         an issue
       • Few debugs that were enabled:
                     Account Generator:Run in Debug Mode
                     FND: Diagnostics
                     FND: Debug Log Enabled
                     INV:Debug Level
                     WSH: Debug Level
       • Concurrent programs running with trace enabled
                select a.concurrent_program_name ,a.enable_trace
                from FND_concurrent_programs a
                where a.enable_trace='Y'



© 2012 OneNeck IT Services Corporation. All rights reserved.                   Page 21
Perf Issue: Available to Promise
   Jobs
         •     ATP jobs are part of supply chain planning.
         •     Refresh Collection Snapshots jobs run forever
         •     Large number of rows spotted in MLOG$ tables
         •     Snapshot refreshes were not deleting rows from MLOG$
               tables even after a full/incremental refresh
         •     Identified dependent materialized views for MLOG$ with
               large number of rows
         •     Many snapshots (mv) are not used/refreshed for a long
               time.
         •     Manually remove them from registered snapshots
         •     Also, truncating the MLOG$ tables and locking statistics
               on them helped

© 2012 OneNeck IT Services Corporation. All rights reserved.              Page 22
Perf Issue: Identifying and
   Clearing Unused MV Reference

         • Identify materialized view last refresh time
                  SELECT r.NAME snapname, snapid,
                  l.log_table, snaptime
                  FROM   sys.slog$ s, dba_registered_snapshots r,
                  (SELECT log_owner, master, log_table from dba_mview_logs
                    where log_table in (&mlogtables )) L
                  WHERE s.snapid=r.snapshot_id(+) AND
                  s.mowner = l.log_owner AND
                  s.MASTER = l.master
                  order by snaptime desc;

         • If MV no longer used, purge and unregister.
                  exec DBMS_SNAPSHOT.PURGE_SNAPSHOT_FROM_LOG (<snapid>);

         • Now MV refreshes delete rows from MLOG$ tables.
         • MV will be registered again when FULL refresh is done.

© 2012 OneNeck IT Services Corporation. All rights reserved.                 Page 23
Perf Issue: INITRANS

         • AWR report showed several wait events on “Read by
               another session” or “Buffer busy waits”
         •     Almost all of the tables/indexes involved in this wait were
               custom tables/indexes.
         •     By default most EBS tables/indexes have INITRANS
               value of 10 and 11. These custom tables/indexes were
               created with default value of 2.
         •     Rebuild the indexes and reorganize tables with
               appropriate INITTRANS
         •     Note: DB is not using ASSM. The INITRANS setting controls Initial Transaction Slots (ITLs). A
               transaction slot is required for any session that needs to modify a block in an object.




© 2012 OneNeck IT Services Corporation. All rights reserved.                                                   Page 24
Maintenance: Purge and
   Cleanup Jobs
      • EBS 11i and R12 provide several concurrent jobs for application and
        database maintenance to keep it running healthy.
      • Commonly scheduled maintenance jobs
                Gather Schema Statistics
                Purge Concurrent Request and/or Manager Data
      • Consider Scheduling these maintenance jobs
                   Purge Debug Log and System Alerts
                   Purge Signon Audit data
                   Purge Obsolete Workflow Runtime Data
                   Purge Obsolete Generic File Manager Data
                   JTF Item InterMedia Index Sync Operation
      • Consider multiple “Purge Concurrent Request” jobs
                In addition to “Entity=All” with “Mode=Age”, schedule additional jobs with
                 ModeValue=1 to remove request logs for programs that run often, especially
                 several times a day.
      • Collect 100% stats on FND_CONCURRENT_REQUESTS Daily
© 2012 OneNeck IT Services Corporation. All rights reserved.                                  Page 25
Back to Basics – Quick
   Refresher on PCT USED/FREE

         • Since the purge and cleanup jobs
           delete rows from the tables, and
           thousands of rows are added daily to
           table, reorganizing the tables reduce
           the blocks used as well as improve
           performance.
         • As a practice, we rebuild indexes on
           these tables quarterly and reorganize
           these tables annually.
         • Many _INTERFACE tables also
           candidates for reorg.




© 2012 OneNeck IT Services Corporation. All rights reserved.   Page 26
Indexes [Tables] for Reorg
   Consideration

    • Tables where purge jobs act                                           • CTXSYS tables
                  FND_CONCURRENT_REQUESTS                                         DR$WAITING
                  FND_LOGINS                                                      DR$PENDING
                  FND_LOGIN_RESPONSIBILITIES                               • MLOG$ tables
                  WF_ITEM_ATTRIBUTE_VALUES                                        If the size is larger
                  WF_ITEM_ACTIVITY_STATUSES
                                                                            • Custom tables
                  FND_STATS_HIST
                                                                                   Temporary data
                  FND_LOG_MESSAGES
                                                                                   Staging data
    • Tables where data is deleted and
           inserted often
              MRP, QP Schema Indexes
              _INTERFACE tables


                        The reorg recommendation may be against Oracle’s best practice and some
                        experts do not believe reorg adds value. Test in your environment …




© 2012 OneNeck IT Services Corporation. All rights reserved.                                                Page 27
Multiple Standard Concurrent
   Managers


         • Multiple Standard Managers to divide the jobs –
           Request Processing Managers
         • At least 3 per Concurrent Manager – Set processes
           appropriate to load, but cache size at least twice
           processes.
                   Fast : Requests that complete under couple of minutes – sleep
                    value 5 secs
                   Long: Requests that take longer than 10 minutes – sleep value
                    60 secs.
                   Default: Default queue – sleep value 30 secs




© 2012 OneNeck IT Services Corporation. All rights reserved.                        Page 28
Questions?



                         THANK YOU FOR YOUR TIME!


                                                    Biju.Thomas@GMail.com
                                                     Tweets: @biju_thomas

© 2012 OneNeck IT Services Corporation. All rights reserved.                Page 29

Contenu connexe

Tendances

How do i... query foreign data using sql server's linked servers tech_repu
How do i... query foreign data using sql server's linked servers    tech_repuHow do i... query foreign data using sql server's linked servers    tech_repu
How do i... query foreign data using sql server's linked servers tech_repu
Kaing Menglieng
 
MySQL Administration and Monitoring
MySQL Administration and MonitoringMySQL Administration and Monitoring
MySQL Administration and Monitoring
Mark Leith
 

Tendances (20)

OOW16 - Oracle Database 12c - The Best Oracle Database 12c New Features for D...
OOW16 - Oracle Database 12c - The Best Oracle Database 12c New Features for D...OOW16 - Oracle Database 12c - The Best Oracle Database 12c New Features for D...
OOW16 - Oracle Database 12c - The Best Oracle Database 12c New Features for D...
 
Developing Information Schema Plugins
Developing Information Schema PluginsDeveloping Information Schema Plugins
Developing Information Schema Plugins
 
Database design i_-_1_dl300
Database design i_-_1_dl300Database design i_-_1_dl300
Database design i_-_1_dl300
 
Controlling execution plans 2014
Controlling execution plans   2014Controlling execution plans   2014
Controlling execution plans 2014
 
Using AWR for SQL Analysis
Using AWR for SQL AnalysisUsing AWR for SQL Analysis
Using AWR for SQL Analysis
 
MySQL Monitoring Mechanisms
MySQL Monitoring MechanismsMySQL Monitoring Mechanisms
MySQL Monitoring Mechanisms
 
OTN TOUR 2016 - DBA Commands and Concepts That Every Developer Should Know
OTN TOUR 2016 - DBA Commands and Concepts That Every Developer Should KnowOTN TOUR 2016 - DBA Commands and Concepts That Every Developer Should Know
OTN TOUR 2016 - DBA Commands and Concepts That Every Developer Should Know
 
Instrumenting plugins for Performance Schema
Instrumenting plugins for Performance SchemaInstrumenting plugins for Performance Schema
Instrumenting plugins for Performance Schema
 
JSON, A Splash of SODA, and a SQL Chaser: Real-World Use Cases for Autonomous...
JSON, A Splash of SODA, and a SQL Chaser: Real-World Use Cases for Autonomous...JSON, A Splash of SODA, and a SQL Chaser: Real-World Use Cases for Autonomous...
JSON, A Splash of SODA, and a SQL Chaser: Real-World Use Cases for Autonomous...
 
Configuration with Apache Tamaya
Configuration with Apache TamayaConfiguration with Apache Tamaya
Configuration with Apache Tamaya
 
Oracle High Availabiltity for application developers
Oracle High Availabiltity for application developersOracle High Availabiltity for application developers
Oracle High Availabiltity for application developers
 
MySQL Indexes and Histograms - RMOUG Training Days 2022
MySQL Indexes and Histograms - RMOUG Training Days 2022MySQL Indexes and Histograms - RMOUG Training Days 2022
MySQL Indexes and Histograms - RMOUG Training Days 2022
 
How do i... query foreign data using sql server's linked servers tech_repu
How do i... query foreign data using sql server's linked servers    tech_repuHow do i... query foreign data using sql server's linked servers    tech_repu
How do i... query foreign data using sql server's linked servers tech_repu
 
DBA Brasil 1.0 - DBA Commands and Concepts That Every Developer Should Know
DBA Brasil 1.0 - DBA Commands and Concepts That Every Developer Should KnowDBA Brasil 1.0 - DBA Commands and Concepts That Every Developer Should Know
DBA Brasil 1.0 - DBA Commands and Concepts That Every Developer Should Know
 
Configuration beyond Java EE 8
Configuration beyond Java EE 8Configuration beyond Java EE 8
Configuration beyond Java EE 8
 
ORACLE 9i
ORACLE 9iORACLE 9i
ORACLE 9i
 
Overview of Optimizer Features in 5.6 and 5.7-Manyi Lu
Overview of Optimizer Features in 5.6 and 5.7-Manyi LuOverview of Optimizer Features in 5.6 and 5.7-Manyi Lu
Overview of Optimizer Features in 5.6 and 5.7-Manyi Lu
 
Oracle Database 12c - Data Redaction
Oracle Database 12c - Data RedactionOracle Database 12c - Data Redaction
Oracle Database 12c - Data Redaction
 
MySQL Administration and Monitoring
MySQL Administration and MonitoringMySQL Administration and Monitoring
MySQL Administration and Monitoring
 
301 Rac
301 Rac301 Rac
301 Rac
 

En vedette (13)

R12 d49656 gc10-apps dba 04
R12 d49656 gc10-apps dba 04R12 d49656 gc10-apps dba 04
R12 d49656 gc10-apps dba 04
 
Ebs em con9053_pdf_9053_0001
Ebs em con9053_pdf_9053_0001Ebs em con9053_pdf_9053_0001
Ebs em con9053_pdf_9053_0001
 
R12 d49656 gc10-apps dba 22
R12 d49656 gc10-apps dba 22R12 d49656 gc10-apps dba 22
R12 d49656 gc10-apps dba 22
 
R12 d49656 gc10-apps dba 27
R12 d49656 gc10-apps dba 27R12 d49656 gc10-apps dba 27
R12 d49656 gc10-apps dba 27
 
Ebs performance tune2_con9030_pdf_9030_0002
Ebs performance tune2_con9030_pdf_9030_0002Ebs performance tune2_con9030_pdf_9030_0002
Ebs performance tune2_con9030_pdf_9030_0002
 
OOW 2009 Using FMW EBS R12
OOW 2009 Using FMW EBS R12OOW 2009 Using FMW EBS R12
OOW 2009 Using FMW EBS R12
 
Ebs oam con5246_pdf_5246_0001
Ebs oam con5246_pdf_5246_0001Ebs oam con5246_pdf_5246_0001
Ebs oam con5246_pdf_5246_0001
 
Soa config con8627_pdf_8627_0001
Soa config con8627_pdf_8627_0001Soa config con8627_pdf_8627_0001
Soa config con8627_pdf_8627_0001
 
Ebs performance tune_con9030_pdf_9030_0001
Ebs performance tune_con9030_pdf_9030_0001Ebs performance tune_con9030_pdf_9030_0001
Ebs performance tune_con9030_pdf_9030_0001
 
Ebs soa con8716_pdf_8716_0001
Ebs soa con8716_pdf_8716_0001Ebs soa con8716_pdf_8716_0001
Ebs soa con8716_pdf_8716_0001
 
Ebs idm con9020_pdf_9020_0001
Ebs idm con9020_pdf_9020_0001Ebs idm con9020_pdf_9020_0001
Ebs idm con9020_pdf_9020_0001
 
Ebs troubleshooting con9019_pdf_9019_0001
Ebs troubleshooting con9019_pdf_9019_0001Ebs troubleshooting con9019_pdf_9019_0001
Ebs troubleshooting con9019_pdf_9019_0001
 
OOW09 R12.1 Standalone Solutions
OOW09 R12.1 Standalone SolutionsOOW09 R12.1 Standalone Solutions
OOW09 R12.1 Standalone Solutions
 

Similaire à Ebs dba con4696_pdf_4696_0001

Exploring Oracle Database Performance Tuning Best Practices for DBAs and Deve...
Exploring Oracle Database Performance Tuning Best Practices for DBAs and Deve...Exploring Oracle Database Performance Tuning Best Practices for DBAs and Deve...
Exploring Oracle Database Performance Tuning Best Practices for DBAs and Deve...
Aaron Shilo
 
Getting optimal performance from oracle e business suite(aioug aug2015)
Getting optimal performance from oracle e business suite(aioug aug2015)Getting optimal performance from oracle e business suite(aioug aug2015)
Getting optimal performance from oracle e business suite(aioug aug2015)
pasalapudi123
 
OOW09 Ebs Tuning Final
OOW09 Ebs Tuning FinalOOW09 Ebs Tuning Final
OOW09 Ebs Tuning Final
jucaab
 

Similaire à Ebs dba con4696_pdf_4696_0001 (20)

2013 Collaborate - OAUG - Presentation
2013 Collaborate - OAUG - Presentation2013 Collaborate - OAUG - Presentation
2013 Collaborate - OAUG - Presentation
 
6 tips for improving ruby performance
6 tips for improving ruby performance6 tips for improving ruby performance
6 tips for improving ruby performance
 
MySQL-Performance Schema- What's new in MySQL-5.7 DMRs
MySQL-Performance Schema- What's new in MySQL-5.7 DMRsMySQL-Performance Schema- What's new in MySQL-5.7 DMRs
MySQL-Performance Schema- What's new in MySQL-5.7 DMRs
 
Best practices for large oracle apps r12 implementations apps14
Best practices for large oracle apps r12 implementations apps14Best practices for large oracle apps r12 implementations apps14
Best practices for large oracle apps r12 implementations apps14
 
Real-Time Query for Data Guard
Real-Time Query for Data Guard Real-Time Query for Data Guard
Real-Time Query for Data Guard
 
MySQL Troubleshooting with the Performance Schema
MySQL Troubleshooting with the Performance SchemaMySQL Troubleshooting with the Performance Schema
MySQL Troubleshooting with the Performance Schema
 
MySQL Performance Schema : fossasia
MySQL Performance Schema : fossasiaMySQL Performance Schema : fossasia
MySQL Performance Schema : fossasia
 
Microsoft SQL Server Query Tuning
Microsoft SQL Server Query TuningMicrosoft SQL Server Query Tuning
Microsoft SQL Server Query Tuning
 
Essential Kit for Oracle JET Programming
Essential Kit for Oracle JET ProgrammingEssential Kit for Oracle JET Programming
Essential Kit for Oracle JET Programming
 
01 oracle architecture
01 oracle architecture01 oracle architecture
01 oracle architecture
 
Getting optimal performance from oracle e-business suite presentation
Getting optimal performance from oracle e-business suite presentationGetting optimal performance from oracle e-business suite presentation
Getting optimal performance from oracle e-business suite presentation
 
Oracle Drivers configuration for High Availability
Oracle Drivers configuration for High AvailabilityOracle Drivers configuration for High Availability
Oracle Drivers configuration for High Availability
 
Rohit_Panot
Rohit_PanotRohit_Panot
Rohit_Panot
 
Exploring Oracle Database Performance Tuning Best Practices for DBAs and Deve...
Exploring Oracle Database Performance Tuning Best Practices for DBAs and Deve...Exploring Oracle Database Performance Tuning Best Practices for DBAs and Deve...
Exploring Oracle Database Performance Tuning Best Practices for DBAs and Deve...
 
제3회난공불락 오픈소스 인프라세미나 - MySQL Performance
제3회난공불락 오픈소스 인프라세미나 - MySQL Performance제3회난공불락 오픈소스 인프라세미나 - MySQL Performance
제3회난공불락 오픈소스 인프라세미나 - MySQL Performance
 
Getting optimal performance from oracle e business suite
Getting optimal performance from oracle e business suiteGetting optimal performance from oracle e business suite
Getting optimal performance from oracle e business suite
 
Getting optimal performance from oracle e business suite(aioug aug2015)
Getting optimal performance from oracle e business suite(aioug aug2015)Getting optimal performance from oracle e business suite(aioug aug2015)
Getting optimal performance from oracle e business suite(aioug aug2015)
 
Performance Schema and Sys Schema in MySQL 5.7
Performance Schema and Sys Schema in MySQL 5.7Performance Schema and Sys Schema in MySQL 5.7
Performance Schema and Sys Schema in MySQL 5.7
 
OOW09 Ebs Tuning Final
OOW09 Ebs Tuning FinalOOW09 Ebs Tuning Final
OOW09 Ebs Tuning Final
 
EXP_DBA RESUME
EXP_DBA RESUMEEXP_DBA RESUME
EXP_DBA RESUME
 

Plus de jucaab

Soa con8642 pdf_8642_0001
Soa con8642 pdf_8642_0001Soa con8642 pdf_8642_0001
Soa con8642 pdf_8642_0001
jucaab
 
Soa cloud con8968_pdf_8968_0001
Soa cloud con8968_pdf_8968_0001Soa cloud con8968_pdf_8968_0001
Soa cloud con8968_pdf_8968_0001
jucaab
 
Otm 2013 c13_e-14a-pospelov-evgeniy-taking-control-over-transportation-spend
Otm 2013 c13_e-14a-pospelov-evgeniy-taking-control-over-transportation-spendOtm 2013 c13_e-14a-pospelov-evgeniy-taking-control-over-transportation-spend
Otm 2013 c13_e-14a-pospelov-evgeniy-taking-control-over-transportation-spend
jucaab
 
Otm 2013 c13_e-14b-hatcher-and-van-haaster-otm-sap-integration
Otm 2013 c13_e-14b-hatcher-and-van-haaster-otm-sap-integrationOtm 2013 c13_e-14b-hatcher-and-van-haaster-otm-sap-integration
Otm 2013 c13_e-14b-hatcher-and-van-haaster-otm-sap-integration
jucaab
 
Otm 2013 c13_e-17a-plessis-elisabeth-otm-self-help
Otm 2013 c13_e-17a-plessis-elisabeth-otm-self-helpOtm 2013 c13_e-17a-plessis-elisabeth-otm-self-help
Otm 2013 c13_e-17a-plessis-elisabeth-otm-self-help
jucaab
 
Otm 2013 c13_e-17b-andriesse-lourens-otm-data-management
Otm 2013 c13_e-17b-andriesse-lourens-otm-data-managementOtm 2013 c13_e-17b-andriesse-lourens-otm-data-management
Otm 2013 c13_e-17b-andriesse-lourens-otm-data-management
jucaab
 
Otm 2013 c13_e-18a-sabharwal-naval-covert-waste-to-value-with-otm
Otm 2013 c13_e-18a-sabharwal-naval-covert-waste-to-value-with-otmOtm 2013 c13_e-18a-sabharwal-naval-covert-waste-to-value-with-otm
Otm 2013 c13_e-18a-sabharwal-naval-covert-waste-to-value-with-otm
jucaab
 
Otm 2013 c13_e-21-fl-keynote-implications-of-ec-transportation-priorities
Otm 2013 c13_e-21-fl-keynote-implications-of-ec-transportation-prioritiesOtm 2013 c13_e-21-fl-keynote-implications-of-ec-transportation-priorities
Otm 2013 c13_e-21-fl-keynote-implications-of-ec-transportation-priorities
jucaab
 
Otm 2013 c13_e-22a-lim-joshua-otm-as-a-service-differentiator
Otm 2013 c13_e-22a-lim-joshua-otm-as-a-service-differentiatorOtm 2013 c13_e-22a-lim-joshua-otm-as-a-service-differentiator
Otm 2013 c13_e-22a-lim-joshua-otm-as-a-service-differentiator
jucaab
 
Otm 2013 c13_e-22b-vivio-pam-otm-3d-load-configurator
Otm 2013 c13_e-22b-vivio-pam-otm-3d-load-configuratorOtm 2013 c13_e-22b-vivio-pam-otm-3d-load-configurator
Otm 2013 c13_e-22b-vivio-pam-otm-3d-load-configurator
jucaab
 
Otm 2013 c13_e-23b-hatcher-neil-otm-gtm-data-maintenance
Otm 2013 c13_e-23b-hatcher-neil-otm-gtm-data-maintenanceOtm 2013 c13_e-23b-hatcher-neil-otm-gtm-data-maintenance
Otm 2013 c13_e-23b-hatcher-neil-otm-gtm-data-maintenance
jucaab
 
Otm 2013 c13_e-13b-hagan-mark-otm-soa
Otm 2013 c13_e-13b-hagan-mark-otm-soaOtm 2013 c13_e-13b-hagan-mark-otm-soa
Otm 2013 c13_e-13b-hagan-mark-otm-soa
jucaab
 
Otm 2013 c13_e-12-gittoes-derek-otm-release-6-3-overview
Otm 2013 c13_e-12-gittoes-derek-otm-release-6-3-overviewOtm 2013 c13_e-12-gittoes-derek-otm-release-6-3-overview
Otm 2013 c13_e-12-gittoes-derek-otm-release-6-3-overview
jucaab
 
Otm 2013 c13_e-15-gittoes-derek-otm-product-strategy
Otm 2013 c13_e-15-gittoes-derek-otm-product-strategyOtm 2013 c13_e-15-gittoes-derek-otm-product-strategy
Otm 2013 c13_e-15-gittoes-derek-otm-product-strategy
jucaab
 
Otm con8923 pdf_8923_0002
Otm con8923 pdf_8923_0002Otm con8923 pdf_8923_0002
Otm con8923 pdf_8923_0002
jucaab
 
Otm con8923 pdf_8923_0001
Otm con8923 pdf_8923_0001Otm con8923 pdf_8923_0001
Otm con8923 pdf_8923_0001
jucaab
 
Otm con8766 pdf_8766_0001
Otm con8766 pdf_8766_0001Otm con8766 pdf_8766_0001
Otm con8766 pdf_8766_0001
jucaab
 
Fusion apps security_con8714_pdf_8714_0001
Fusion apps security_con8714_pdf_8714_0001Fusion apps security_con8714_pdf_8714_0001
Fusion apps security_con8714_pdf_8714_0001
jucaab
 
Fusion app tech_con8707_pdf_8707_0001
Fusion app tech_con8707_pdf_8707_0001Fusion app tech_con8707_pdf_8707_0001
Fusion app tech_con8707_pdf_8707_0001
jucaab
 
Fusion app integration_con8685_pdf_8685_0001
Fusion app integration_con8685_pdf_8685_0001Fusion app integration_con8685_pdf_8685_0001
Fusion app integration_con8685_pdf_8685_0001
jucaab
 

Plus de jucaab (20)

Soa con8642 pdf_8642_0001
Soa con8642 pdf_8642_0001Soa con8642 pdf_8642_0001
Soa con8642 pdf_8642_0001
 
Soa cloud con8968_pdf_8968_0001
Soa cloud con8968_pdf_8968_0001Soa cloud con8968_pdf_8968_0001
Soa cloud con8968_pdf_8968_0001
 
Otm 2013 c13_e-14a-pospelov-evgeniy-taking-control-over-transportation-spend
Otm 2013 c13_e-14a-pospelov-evgeniy-taking-control-over-transportation-spendOtm 2013 c13_e-14a-pospelov-evgeniy-taking-control-over-transportation-spend
Otm 2013 c13_e-14a-pospelov-evgeniy-taking-control-over-transportation-spend
 
Otm 2013 c13_e-14b-hatcher-and-van-haaster-otm-sap-integration
Otm 2013 c13_e-14b-hatcher-and-van-haaster-otm-sap-integrationOtm 2013 c13_e-14b-hatcher-and-van-haaster-otm-sap-integration
Otm 2013 c13_e-14b-hatcher-and-van-haaster-otm-sap-integration
 
Otm 2013 c13_e-17a-plessis-elisabeth-otm-self-help
Otm 2013 c13_e-17a-plessis-elisabeth-otm-self-helpOtm 2013 c13_e-17a-plessis-elisabeth-otm-self-help
Otm 2013 c13_e-17a-plessis-elisabeth-otm-self-help
 
Otm 2013 c13_e-17b-andriesse-lourens-otm-data-management
Otm 2013 c13_e-17b-andriesse-lourens-otm-data-managementOtm 2013 c13_e-17b-andriesse-lourens-otm-data-management
Otm 2013 c13_e-17b-andriesse-lourens-otm-data-management
 
Otm 2013 c13_e-18a-sabharwal-naval-covert-waste-to-value-with-otm
Otm 2013 c13_e-18a-sabharwal-naval-covert-waste-to-value-with-otmOtm 2013 c13_e-18a-sabharwal-naval-covert-waste-to-value-with-otm
Otm 2013 c13_e-18a-sabharwal-naval-covert-waste-to-value-with-otm
 
Otm 2013 c13_e-21-fl-keynote-implications-of-ec-transportation-priorities
Otm 2013 c13_e-21-fl-keynote-implications-of-ec-transportation-prioritiesOtm 2013 c13_e-21-fl-keynote-implications-of-ec-transportation-priorities
Otm 2013 c13_e-21-fl-keynote-implications-of-ec-transportation-priorities
 
Otm 2013 c13_e-22a-lim-joshua-otm-as-a-service-differentiator
Otm 2013 c13_e-22a-lim-joshua-otm-as-a-service-differentiatorOtm 2013 c13_e-22a-lim-joshua-otm-as-a-service-differentiator
Otm 2013 c13_e-22a-lim-joshua-otm-as-a-service-differentiator
 
Otm 2013 c13_e-22b-vivio-pam-otm-3d-load-configurator
Otm 2013 c13_e-22b-vivio-pam-otm-3d-load-configuratorOtm 2013 c13_e-22b-vivio-pam-otm-3d-load-configurator
Otm 2013 c13_e-22b-vivio-pam-otm-3d-load-configurator
 
Otm 2013 c13_e-23b-hatcher-neil-otm-gtm-data-maintenance
Otm 2013 c13_e-23b-hatcher-neil-otm-gtm-data-maintenanceOtm 2013 c13_e-23b-hatcher-neil-otm-gtm-data-maintenance
Otm 2013 c13_e-23b-hatcher-neil-otm-gtm-data-maintenance
 
Otm 2013 c13_e-13b-hagan-mark-otm-soa
Otm 2013 c13_e-13b-hagan-mark-otm-soaOtm 2013 c13_e-13b-hagan-mark-otm-soa
Otm 2013 c13_e-13b-hagan-mark-otm-soa
 
Otm 2013 c13_e-12-gittoes-derek-otm-release-6-3-overview
Otm 2013 c13_e-12-gittoes-derek-otm-release-6-3-overviewOtm 2013 c13_e-12-gittoes-derek-otm-release-6-3-overview
Otm 2013 c13_e-12-gittoes-derek-otm-release-6-3-overview
 
Otm 2013 c13_e-15-gittoes-derek-otm-product-strategy
Otm 2013 c13_e-15-gittoes-derek-otm-product-strategyOtm 2013 c13_e-15-gittoes-derek-otm-product-strategy
Otm 2013 c13_e-15-gittoes-derek-otm-product-strategy
 
Otm con8923 pdf_8923_0002
Otm con8923 pdf_8923_0002Otm con8923 pdf_8923_0002
Otm con8923 pdf_8923_0002
 
Otm con8923 pdf_8923_0001
Otm con8923 pdf_8923_0001Otm con8923 pdf_8923_0001
Otm con8923 pdf_8923_0001
 
Otm con8766 pdf_8766_0001
Otm con8766 pdf_8766_0001Otm con8766 pdf_8766_0001
Otm con8766 pdf_8766_0001
 
Fusion apps security_con8714_pdf_8714_0001
Fusion apps security_con8714_pdf_8714_0001Fusion apps security_con8714_pdf_8714_0001
Fusion apps security_con8714_pdf_8714_0001
 
Fusion app tech_con8707_pdf_8707_0001
Fusion app tech_con8707_pdf_8707_0001Fusion app tech_con8707_pdf_8707_0001
Fusion app tech_con8707_pdf_8707_0001
 
Fusion app integration_con8685_pdf_8685_0001
Fusion app integration_con8685_pdf_8685_0001Fusion app integration_con8685_pdf_8685_0001
Fusion app integration_con8685_pdf_8685_0001
 

Ebs dba con4696_pdf_4696_0001

  • 1. Biju Thomas Oracle Solutions Architect OneNeck IT Services Corp. Tweets: @biju_thomas © 2012 OneNeck IT Services Corporation. All rights reserved.
  • 2. About the Speaker • Oracle Solutions Architect at OneNeck IT Services • More than 19 years of Oracle Database Experience • Working with Oracle EBS databases and applications past 5 years • EBS expertise in setting up new environments, automate cloning, troubleshooting and performance tuning • Author of Oracle11g OCA, co-author of Oracle10g, 9i, 8i OCP certification guides published by Sybex/Wiley. • First EBS related presentation! Please provide feedback. © 2012 OneNeck IT Services Corporation. All rights reserved. Page 2
  • 3. Message… Do not shy away from exploring the database… • Lot of unanswered questions at the EBS application side can be answered at the database. • Newer releases of databases collect large amount of performance related information. • “Apps DBA” and “Core DBA” are not two different job functions. I see “Apps DBA” as an extension to Oracle DBA. You have additional EBS skills over Oracle DBA. © 2012 OneNeck IT Services Corporation. All rights reserved. Page 3
  • 4. Agenda • Finding expensive SQL – using AWR • Tying the SQL to an EBS job • Few major performance issues & resolution • Periodic database maintenance for Concurrent Job Performance • Oracle provided periodic EBS maintenance jobs • Multiple Concurrent Manager lanes for performance © 2012 OneNeck IT Services Corporation. All rights reserved. Page 4
  • 5. AWR [Automatic Workload Repository] – Quick Overview • Introduced in Oracle 10g • AWR is automatically installed and enabled, snapshot collection is scheduled • Information automatically populated by database – but need license to use information. • Baseline snapshots, compare two time periods • Use DBA_HIST_ views • Default keeps 7 days information – need to increase to at least a month to help analysis • Fully integrated in OEM • Captures resource intensive SQLs, Object usage statistics @$ORACLE_HOME/rdbms/admin/awrrpt.sql, awrsqrpt.sql, awrddrpt.sql © 2012 OneNeck IT Services Corporation. All rights reserved. Page 5
  • 6. The “Dirty” SQL SELECT * FROM ( • High buffer gets – LIO SELECT sql_id, • Use DBA_HIST_SQLSTAT module, SUM (nvl(buffer_gets_delta,0)) bget, • Captures the statistics information SUM (nvl(executions_delta,0)) exec, from V$SQL SUM (nvl(cpu_time_delta,0)) cput, • Tie in the SQL_ID to SUM (nvl(elapsed_time_delta,0)) elap, SUM (nvl(rows_processed_delta,0)) rowsp, DBA_HIST_SQLTEXT for SQL SUM (nvl(sorts_delta,0)) sorts, statement. SUM (nvl(disk_reads_delta,0)) diskread • Tie in the SQL_ID to FROM dba_hist_sqlstat DBA_HIST_ACTIVE_SESS_HISTORY WHERE dbid = V_DBID AND instance_number = V_INST for User id and Program name. AND snap_id between • May also use OEM to find more V_SNAP_B and V_SNAP_E information on the SQL_ID. GROUP BY module, sql_id --ORDER BY bget/nvl(nullif(exec,0),1) desc) ORDER BY bget desc) WHERE ROWNUM < 21 © 2012 OneNeck IT Services Corporation. All rights reserved. Page 6
  • 7. “Dirty” SQL Example © 2012 OneNeck IT Services Corporation. All rights reserved. Page 7
  • 8. Finding Concurrent Program • For all EBS standard programs, “MODULE” in AWR (v$session) is the Concurrent Program Name. • Details on the program and request run times can be obtained from FND_CONCURRENT_PROGRAMS and FND_CONCURRENT_REQUESTS using the MODULE. © 2012 OneNeck IT Services Corporation. All rights reserved. Page 8
  • 9. More Info on SQL from OEM © 2012 OneNeck IT Services Corporation. All rights reserved. Page 9
  • 10. Identifying Job Slowness Issue Using ASH • User complains concurrent job “Item Cost Import” ran longer and provided request id. • FND_CONCURRENT_REQUESTS has details including start and end time. • Find the concurrent program name of the request, and search ASH for module during the timeframe. © 2012 OneNeck IT Services Corporation. All rights reserved. Page 10
  • 11. The ASH Report @$ORACLE_HOME/rdbms/admin/ashrpt.sql © 2012 OneNeck IT Services Corporation. All rights reserved. Page 11
  • 12. Identifying Session Details Using ASH • ASH report also shows blocking sessions during the window selected. Filtering the report for a specific session gives more details. © 2012 OneNeck IT Services Corporation. All rights reserved. Page 12
  • 13. AWR/ASH Not Substitute for 10046 Trace • AWR cannot replace Session trace, but is a quick analysis tool for performance issues or for trending. • Favorite trace interpretation utility is “Trace Analyzer” – which is “tkprof on steroids” • Trace Analyzer reads a raw SQL Trace generated by standard SQL Trace or by EVENT 10046 (Level 4, 8 or 12), and generates a detailed HTML report with performance details, including bind values. • Trace Analyzer is available from MetaLink, see note # 224270.1 for download and install instructions. © 2012 OneNeck IT Services Corporation. All rights reserved. Page 13
  • 14. My Most Used SQL Query SELECT DISTINCT Substr (fcpv.concurrent_program_name || ' - ' || fcpv.user_concurrent_program_name, 1, 60) program, fu.user_name, fu.description who, fcr.request_id, fcr.parent_request_id, fcr.requested_start_date, fcr.actual_start_date, fcr.actual_completion_date, Numtodsinterval(fcr.actual_completion_date - fcr.actual_start_date, 'day') duration, fcr.argument_text, phase_code, status_code, Decode (fcr.phase_code, 'P', 'Pending', 'R', 'Running', 'C', 'Completed', phase_code) phase, Decode (fcr.status_code, 'A', 'Waiting', 'B', 'Resuming', 'C', 'Normal‘, 'D', 'Cancelled', 'E', 'Error', 'G', 'Warning', 'H', 'On Hold', 'I', 'Normal', 'M', 'No Manager', 'P', 'Scheduled', 'Q', 'Standby', 'R', 'Normal', 'S', 'Suspended', 'T', 'Terminating', 'U', 'Disabled', 'W', 'Paused', 'X', 'Terminated', 'Z', 'Waiting') status, fcr.completion_text FROM apps.fnd_concurrent_requests fcr, apps.fnd_concurrent_programs_tl fcpt, apps.fnd_concurrent_programs_vl fcpv, apps.fnd_user fu WHERE fcr.concurrent_program_id = fcpt.concurrent_program_id AND ( fcr.concurrent_program_id = fcpv.concurrent_program_id AND fcr.program_application_id = fcpv.application_id ) AND fcr.requested_by = fu.user_id -- AND fcr.actual_start_date >= SYSDATE - 1 -- and to_date('04/02/2012 01:05:00','MM/DD/YYYY HH24:MI:SS') between fcr.actual_start_date and fcr.actual_completion_date AND fcpt.USER_CONCURRENT_PROGRAM_NAME LIKE 'Item Cost I%' -- AND fcr.request_id =38664594 -- AND fcpv.Concurrent_Program_Name like 'INCOIN%' -- and argument_text like '%MDS_MRP%' -- and TRUNC((fcr.ACTUAL_COMPLETION_DATE - fcr.ACTUAL_START_DATE)*24) > 2/24 -- and fcr.phase_code = 'P' -- and fcr.status_code in ('E') -- and fcr.requested_by != 0 -- and fcr.actual_start_date is null -- and fcr.requested_start_date < sysdate ORDER BY fcr.ACTUAL_START_DATE desc © 2012 OneNeck IT Services Corporation. All rights reserved. Page 14
  • 15. Variations of Favorite Query – Running Requests with SQL and Session Lock Info SELECT fcr.Request_Id Request_id, fcr.parent_request_id parent_req, fu.User_name, substr(fu.description, 1,30) user_desc, s.sid || ', ' || s.serial# SIDSERIAL, fcpv.Concurrent_Program_Name|| ' - ' || Fcpv.User_Concurrent_Program_Name Program, TO_CHAR (fcr.actual_start_date, 'mm/dd hh24:mi') start_time, fcr.requested_start_date, numtodsinterval(sysdate-fcr.actual_start_date,'day') duration, fcr.argument_text, p.spid, fpro.os_process_id, phase_code, status_code, qt.user_concurrent_queue_name, s.lockwait, s.sql_id, s.module FROM apps.Fnd_Concurrent_Queues Fcq, apps.fnd_concurrent_queues_tl qt, apps.Fnd_Concurrent_Requests Fcr, apps.Fnd_Concurrent_Programs Fcp, apps.Fnd_User Fu, apps.Fnd_Concurrent_Processes Fpro, v$session s, v$process p, apps.Fnd_Concurrent_Programs_Vl Fcpv WHERE status_Code = 'R' AND s.paddr = p.addr AND fcr.requested_by = user_id AND fcq.application_id = qt.application_id AND fcq.concurrent_queue_id = qt.concurrent_queue_id AND USERENV ('lang') = qt.language AND fcr.os_process_id = s.process AND fcr.Controlling_Manager = Concurrent_Process_Id AND (fcq.concurrent_queue_id = fpro.concurrent_queue_id AND fcq.application_id = fpro.queue_application_id) AND (fcr.concurrent_program_id = fcp.concurrent_program_id AND fcr.program_application_id = fcp.application_id) AND (fcr.concurrent_program_id = fcpv.concurrent_program_id AND fcr.program_application_id = fcpv.application_id) ORDER BY fcr.actual_start_date; © 2012 OneNeck IT Services Corporation. All rights reserved. Page 15
  • 16. Variations of Favorite Query – Runaway Concurrent DB Sessions SELECT fcr.request_id, fu.user_name, p.spid, s.sid ||', ‘ || s.serial# sidserial, s.module, Substr(fcpv.concurrent_program_name ||' - ' || fcpv.user_concurrent_program_name, 1, 46) program, To_char(fcr.actual_start_date, 'mm/dd hh24:mi:ss') CM_Job_start_time, To_char(s.logon_time, 'mm/dd hh24:mi:ss') Session_login_time, phase_code, status_code, To_char(Trunc(SYSDATE) + ( SYSDATE - fcr.actual_start_date ), 'hh24:mi:ss') duration FROM apps.fnd_concurrent_queues fcq, apps.fnd_concurrent_queues_tl qt, apps.fnd_concurrent_requests fcr, apps.fnd_concurrent_programs fcp, apps.fnd_user fu, apps.fnd_concurrent_processes fpro, v$session s, v$process p, apps.fnd_concurrent_programs_vl fcpv WHERE phase_code = 'C' AND status_code = 'X' AND s.paddr = p.addr AND fcr.requested_by = user_id AND fcq.application_id = qt.application_id AND fcq.concurrent_queue_id = qt.concurrent_queue_id AND Userenv('lang') = qt.language AND fcr.os_process_id = s.process AND fcr.controlling_manager = concurrent_process_id AND ( fcq.concurrent_queue_id = fpro.concurrent_queue_id AND fcq.application_id = fpro.queue_application_id ) AND ( fcr.concurrent_program_id = fcp.concurrent_program_id AND fcr.program_application_id = fcp.application_id ) AND ( fcr.concurrent_program_id = fcpv.concurrent_program_id AND fcr.program_application_id = fcpv.application_id ) and fcpv.concurrent_program_name = s.module ORDER BY fcr.actual_start_date; © 2012 OneNeck IT Services Corporation. All rights reserved. Page 16
  • 17. Performance Issues Identified and Fixed • Few performance issues identified and fixed using AWR/ASH method…  Update Standard Costs  Calculate Plan Performance Indicators  MRP  Concurrent Debug  ATP  Custom Index / Table INITRANS © 2012 OneNeck IT Services Corporation. All rights reserved. Page 17
  • 18. Perf Issue: Update Standard Costs Program • Large LIO on BOM.CST_STD_COST_ADJ_VALUES table noticed. • Coming from CMCICU • SQL happened to be typical optimizer statistics collection • Every time program runs, 10% statistics on table was run – multiple users run the program multiple times a day, on a table with over 80 million rows! • Fixed issue by setting profile “CST: Cost update- Gather Statistics” to “N”. • Weekly GATHER and daily GATHER_AUTO statistics scheduled in DB, hence this stat collection was unnecessary. © 2012 OneNeck IT Services Corporation. All rights reserved. Page 18
  • 19. Perf Issue: Calculate Plan Performance Indicators • Large LIO on MRP.MRP_BIS_INV_DETAIL table. • Several deletes and inserts on the table multiple times a day. Table had multiple million rows. • Coming from module MRPCBIS • Per metalink Note 783088.1 this job is no longer needed in Master Scheduling / MRP. • Turn off calculation using profile “MRP: Calculate Plan Performance” to “No”. • Truncate tables MRP_BIS_INV_DETAIL and MRP_BIS_RES_SUMMARY. © 2012 OneNeck IT Services Corporation. All rights reserved. Page 19
  • 20. Perf Issue: Materials Requirement Planning • The purpose of material planning is to balance material supply to demand by simulating the future – very critical process in few of our environments. • Performance improved by setting the following profile values…  MRP:Planning Manager Batch Size = 1000  MRP:Planning Manager Max Workers = 10  MRP:Purge Batch Size = 600,000  MRP:Snapshot Workers = 10 • STANDARD or “specialized” manager should have at least “(2 x <Snapshot Workers>) + 6” © 2012 OneNeck IT Services Corporation. All rights reserved. Page 20
  • 21. Perf Issue: Debug and Trace • There were many profiles at site level set to “debug” mode. • Revealed by large number of I/O against FND_CONCURRENT_DEBUG_INFO and FND_LOG_MESSAGES • Turn off tracing and debugging in production unless troubleshooting an issue • Few debugs that were enabled:  Account Generator:Run in Debug Mode  FND: Diagnostics  FND: Debug Log Enabled  INV:Debug Level  WSH: Debug Level • Concurrent programs running with trace enabled select a.concurrent_program_name ,a.enable_trace from FND_concurrent_programs a where a.enable_trace='Y' © 2012 OneNeck IT Services Corporation. All rights reserved. Page 21
  • 22. Perf Issue: Available to Promise Jobs • ATP jobs are part of supply chain planning. • Refresh Collection Snapshots jobs run forever • Large number of rows spotted in MLOG$ tables • Snapshot refreshes were not deleting rows from MLOG$ tables even after a full/incremental refresh • Identified dependent materialized views for MLOG$ with large number of rows • Many snapshots (mv) are not used/refreshed for a long time. • Manually remove them from registered snapshots • Also, truncating the MLOG$ tables and locking statistics on them helped © 2012 OneNeck IT Services Corporation. All rights reserved. Page 22
  • 23. Perf Issue: Identifying and Clearing Unused MV Reference • Identify materialized view last refresh time SELECT r.NAME snapname, snapid, l.log_table, snaptime FROM sys.slog$ s, dba_registered_snapshots r, (SELECT log_owner, master, log_table from dba_mview_logs where log_table in (&mlogtables )) L WHERE s.snapid=r.snapshot_id(+) AND s.mowner = l.log_owner AND s.MASTER = l.master order by snaptime desc; • If MV no longer used, purge and unregister. exec DBMS_SNAPSHOT.PURGE_SNAPSHOT_FROM_LOG (<snapid>); • Now MV refreshes delete rows from MLOG$ tables. • MV will be registered again when FULL refresh is done. © 2012 OneNeck IT Services Corporation. All rights reserved. Page 23
  • 24. Perf Issue: INITRANS • AWR report showed several wait events on “Read by another session” or “Buffer busy waits” • Almost all of the tables/indexes involved in this wait were custom tables/indexes. • By default most EBS tables/indexes have INITRANS value of 10 and 11. These custom tables/indexes were created with default value of 2. • Rebuild the indexes and reorganize tables with appropriate INITTRANS • Note: DB is not using ASSM. The INITRANS setting controls Initial Transaction Slots (ITLs). A transaction slot is required for any session that needs to modify a block in an object. © 2012 OneNeck IT Services Corporation. All rights reserved. Page 24
  • 25. Maintenance: Purge and Cleanup Jobs • EBS 11i and R12 provide several concurrent jobs for application and database maintenance to keep it running healthy. • Commonly scheduled maintenance jobs  Gather Schema Statistics  Purge Concurrent Request and/or Manager Data • Consider Scheduling these maintenance jobs  Purge Debug Log and System Alerts  Purge Signon Audit data  Purge Obsolete Workflow Runtime Data  Purge Obsolete Generic File Manager Data  JTF Item InterMedia Index Sync Operation • Consider multiple “Purge Concurrent Request” jobs  In addition to “Entity=All” with “Mode=Age”, schedule additional jobs with ModeValue=1 to remove request logs for programs that run often, especially several times a day. • Collect 100% stats on FND_CONCURRENT_REQUESTS Daily © 2012 OneNeck IT Services Corporation. All rights reserved. Page 25
  • 26. Back to Basics – Quick Refresher on PCT USED/FREE • Since the purge and cleanup jobs delete rows from the tables, and thousands of rows are added daily to table, reorganizing the tables reduce the blocks used as well as improve performance. • As a practice, we rebuild indexes on these tables quarterly and reorganize these tables annually. • Many _INTERFACE tables also candidates for reorg. © 2012 OneNeck IT Services Corporation. All rights reserved. Page 26
  • 27. Indexes [Tables] for Reorg Consideration • Tables where purge jobs act • CTXSYS tables  FND_CONCURRENT_REQUESTS  DR$WAITING  FND_LOGINS  DR$PENDING  FND_LOGIN_RESPONSIBILITIES • MLOG$ tables  WF_ITEM_ATTRIBUTE_VALUES  If the size is larger  WF_ITEM_ACTIVITY_STATUSES • Custom tables  FND_STATS_HIST  Temporary data  FND_LOG_MESSAGES  Staging data • Tables where data is deleted and inserted often  MRP, QP Schema Indexes  _INTERFACE tables The reorg recommendation may be against Oracle’s best practice and some experts do not believe reorg adds value. Test in your environment … © 2012 OneNeck IT Services Corporation. All rights reserved. Page 27
  • 28. Multiple Standard Concurrent Managers • Multiple Standard Managers to divide the jobs – Request Processing Managers • At least 3 per Concurrent Manager – Set processes appropriate to load, but cache size at least twice processes.  Fast : Requests that complete under couple of minutes – sleep value 5 secs  Long: Requests that take longer than 10 minutes – sleep value 60 secs.  Default: Default queue – sleep value 30 secs © 2012 OneNeck IT Services Corporation. All rights reserved. Page 28
  • 29. Questions? THANK YOU FOR YOUR TIME! Biju.Thomas@GMail.com Tweets: @biju_thomas © 2012 OneNeck IT Services Corporation. All rights reserved. Page 29