04 de Agosto de 2018, São Paulo, Brasil
Performance Tuning DBA – Main Tasks
Marcus Vinicius Miguel Pedro
04 de Agosto de 2018, São Paulo, Brasil
Agenda
• Speaker
• Tuning
• Main Tasks
• How?
• When?
• Where?
• Examples
• Q&A
• Contact
04 de Agosto de 2018, São Paulo, Brasil
Marcus Vinicius Miguel Pedro
• Blog: www.viniciusdba.com.br;
• 21 years working in IT Industry;
• 13+ years working with Oracle Database;
• GUOB Board Member;
• Speaker in Oracle-related events: GUOB, IFSP, FATEC, OOW;
• Working as Sr. Database Consultant in Accenture Enkitec Group;
• Worked as Sr. Database Consultant in Oracle ACS;
• Worked as IT Operations Manager in Discover Technology (former Brazilian Oracle Platinum Partner);
• Worked as Sr. Database Consultant in Discover Technology;
• Certifications:
- Oracle Database 9i Administrator Certified Associate (OCA);
- Oracle Database 9i Administrator Certified Professional (OCP);
- Oracle Database 10g Administrator Certified Professional (OCP);
- Oracle Database 10g: RAC Administrator Certified Expert (OCE RAC 10g);
- Oracle Database 11g Administrator Certified Professional (OCP);
- Oracle Database 11g Certified Implementation Specialist (OCS);
- Oracle Database 11g Grid & RAC Cerified Expert (OCE RAC 11g);
- Oracle Database 11g Tuning Certified Expert (OCE Tuning 11g);
- Oracle Database 12c Certified Professional (OCP);
- Oracle Database Cloud Service Operations Certified Associate;
- Oracle Database Cloud Administrator Certified Professional;
- Oracle Database 12c Tuning Certified Expert (OCE Tuning 12c);
- Oracle ACE.
http://apex.oracle.com/pls/otn/f?p=19297:4:1452013536248361::NO:4:P4_ID:2540
04 de Agosto de 2018, São Paulo, Brasil
• Global systems integrator focused on the Oracle platform
• Consultants average 15+ years of Oracle experience
• Worldwide specialist in Engineered Systems implementations
• 14 Oracle ACE members, specialist recognized by Oracle for their technical expertise
Elite
Expertise
Oracle Specializations*
• Oracle Exadata
• Oracle Exalogic
• Oracle Database
• Oracle GoldenGate
• Oracle Data Integrator
• Oracle Database
• Oracle Data Warehouse
• Oracle Real Application Cluster
• Oracle Performance Tuning
• Oracle Database Security
Thought
Leadership
Success
Our consultants have been published in multiple subject
areas and additional online resources that demonstrate
Accenture’s experience and expertise with the OES platform
Oracle Engineered Systems Numbers
• 1000+ Oracle Engineered Systems which AEG have configured, patched or supported.
• 140+ AEG resources which have an average 15+ years of Oracle experience
• AEG Support across 9 countries
• 200 Oracle Engineered Systems (Exadata/Exalogic etc) currently under management directly by AEG
• 200+ customers in either the AEG Managed Services program or remoteDBA program
• 50,000 Accenture Oracle IDC resources that can be leveraged for Level 1 & Level 2 support
ACCENTURE ENKITEC GROUP
CAPABILITIES OVERVIEW
04 de Agosto de 2018, São Paulo, Brasil
Performance Tuning - Main Tasks
• Compare periods: identify behaviour change;
• Monitor performance metrics;
• Backup time & resource usage;
• Monitor memory & CPU usage;
• Monitor I/O metrics;
• Monitor and maintain CBO statistics;
• Database growth;
• Monitor object usage;
• Manage database objects;
• SQL and PL/SQL debuggin
• Database upgrade;
• Etc...
04 de Agosto de 2018, São Paulo, Brasil
Tuning Methods
History
04 de Agosto de 2018, São Paulo, Brasil
Tuning – How?
• Effective Tuning Goals:
• Specific;
• Measurable;
• Achievable.
Database needs to be more faster!!
Time is money!
04 de Agosto de 2018, São Paulo, Brasil
Tuning – How?
• Effective Tuning Goals:
• Specific;
• Measurable;
• Achievable;
• Cost effective. The sales report must be executed in 2 hours
04 de Agosto de 2018, São Paulo, Brasil
Tuning – Goals
Response Time
User Wait Time
Throughput
Scalable
04 de Agosto de 2018, São Paulo, Brasil
Tuning – How?
04 de Agosto de 2018, São Paulo, Brasil
Tuning – How?
Scalable App
Possibly needs
SQL Tuning
Needs
instance/
RAC Tuning
CPU
time
Wait
time
No gain achieved
by adding
CPUs/nodes
DB time = DB CPU time + DB wait time
04 de Agosto de 2018, São Paulo, Brasil
What Does the DBA Tune?
Performance tuning areas:
– Application:
• SQL statement performance
• Change management
– Instance tuning:
• Memory
• Database structure
• Instance configuration
– Operating system interactions:
• I/O
• Swap
• Parameters
Shared with developers
Shared with SA
04 de Agosto de 2018, São Paulo, Brasil
Types of Tuning
Proactive
04 de Agosto de 2018, São Paulo, Brasil
Types of Tuning
Reactive
04 de Agosto de 2018, São Paulo, Brasil
Tuning Methodology
• Tuning steps:
– Identify the scope of the problem (OS, database, and so on).
– Tune the following from the top down:
• The design before tuning the application code
• The code before tuning the instance
– Tune the area with the greatest potential benefit:
• Identify the performance problem.
• Analyze the problem, looking for skewed and tunable components.
• Use appropriate tools to tune the components implicated.
– Stop tuning when the goal is met.
04 de Agosto de 2018, São Paulo, Brasil
Tuning – How?
• App is new?
• Yes
• Deployment of:
– New application and database
• Take baseline.
• Monitor growth and performance.
– New application in existing database
• Take baseline before deployment.
• Take baseline after deployment.
• Compare baselines.
04 de Agosto de 2018, São Paulo, Brasil
Tuning – How?
• App is new?
• No
What Has Changed?
Where is the Baseline?
04 de Agosto de 2018, São Paulo, Brasil
What can be changed?
04 de Agosto de 2018, São Paulo, Brasil
What can be changed?
04 de Agosto de 2018, São Paulo, Brasil
What can be changed?
• More active users / More transactions;
• Data volume change;
• Application change (deployment);
• Lack of updated statistics;
• Statistics gathered;
• Schema change;
• Database parameter change;
• Database upgrade;
• OS change;
• Hardware change.
04 de Agosto de 2018, São Paulo, Brasil
Tuning – How?
• Licensing:
• Enterprise Edition + Diagnostic Pack: AWR, ASH, DBA_HIST*, etc...;
• Enterprise Edition: Statspack, V$* except V$ACTIVE_SESSION_HISTORY;
• Standard Edition: Statspack, V$* except V$ACTIVE_SESSION_HISTORY;
04 de Agosto de 2018, São Paulo, Brasil
Tuning – How?
• Differences between AWR and Statspack:
• Statspack not include ASH data. In AWR data are in DBA_HIST_ACTIVE_SESS_HISTORY;
• Statspack not store history for new metric statistics that were introduced in 10g and can be
visualized by key-views in the AWR: DBA_HIST_SYSMETRIC_HISTORY and
DBA_HIST_SYSMETRIC_SUMMARY;
• The Statspack snapshots needs do be manually generated. In AWR, the snapshot genearation are
automatically generated in a 60 minutes interval by default and DBAs can change the interval as their
needs.
• The purge for old/history data from Statspack must be done manually. In AWR this purge is executed
automatically in a job nightly routine by MMON background process. By default, there is a 7-day
retention (changeable). If tablespace SYSAUX is running out of space, there will be a purge
automatically in the oldest snapshots.
04 de Agosto de 2018, São Paulo, Brasil
Tuning – How?
• Free:
• SQLdb360: https://github.com/sqldb360/sqldb360 : eDB360 + SQLd360
Carlos Sierra + Mauro Pagano
04 de Agosto de 2018, São Paulo, Brasil
Tuning – When?
All the time!
04 de Agosto de 2018, São Paulo, Brasil
Tuning – Where?
User
04 de Agosto de 2018, São Paulo, Brasil
Tuning – Where?
• AWR:
04 de Agosto de 2018, São Paulo, Brasil
Tuning – Where?
• AWR – Baseline:
04 de Agosto de 2018, São Paulo, Brasil
Tuning – Where?
• AWR – Purge:
04 de Agosto de 2018, São Paulo, Brasil
Tuning – Where?
• AWR – Settings:
04 de Agosto de 2018, São Paulo, Brasil
Tuning – Where?
• AWR – Data:
04 de Agosto de 2018, São Paulo, Brasil
Tuning – Where?
• ASH – Overview:
• Keep DB Time history;
• Does sampling from sessions activity including:
• SQL_ID;
• OBJECT_ID, FILE_ID, BLOCK_ID;
• Wait Events and Parameters;
• SID e SERIAL#;
• MODULE an ACTION_NAME;
• Blocking Session;
• Etc.
• You can use as your first step/tool to analyze a performance issue;
• Not need to reproduce workload.
04 de Agosto de 2018, São Paulo, Brasil
Tuning – Where?
• ASH – Mechanism:
04 de Agosto de 2018, São Paulo, Brasil
Tuning – Where?
• ASH – Example:
04 de Agosto de 2018, São Paulo, Brasil
Tuning – Where?
• ASH – How query data?
• Trace Dump ASH;
• V$ACTIVE_SESSION_HISTORY;
• DBA_HIST_ACTIVE_SESS_HISTORY;
• ASH Report;
• EM’s Performance Page;
• ADDM.
04 de Agosto de 2018, São Paulo, Brasil
Tuning – Where?
• Wait Events – What are they?
• A session is not only executing all the time!
• Each session must be wait for some resource at some point;
• Each type of wait is an event in the database;
• In 11gR2 there is 1367 wait events;
• In 12cR1 there is 1650 wait events;
• Wait Events = Code Instrumentation;
04 de Agosto de 2018, São Paulo, Brasil
Tuning – Where?
• SQL TRACE
• Can be activated by instance or by session;
• Execution statistics from SQL;
• Can be formated using TKPROF.
04 de Agosto de 2018, São Paulo, Brasil
Tuning – Where?
• SQL TRACE – Initialization Parameter
04 de Agosto de 2018, São Paulo, Brasil
Tuning – Where?
• SQL TRACE
• To activate in instance:
• To activate in a specific
session:
• To activate in another session:
04 de Agosto de 2018, São Paulo, Brasil
Tuning – Where?
• SQL TRACE
• Sintax tkprof
• Examples:
04 de Agosto de 2018, São Paulo, Brasil
Tuning – Where?
• SQL TRACE
• Extended Trace: 10046 Trace levels
• 0 - no statistics;
• 1 - basic statistics CURSOR, PARSE, EXEC, FETCH ERROR, SORT UMAP, ERROR, UMAP, STATS
and XCTEND. Same as sql_trace=true;
• 4 – Same as level 1, but adds BIND section;
• 8 – Same as level 1, but includes wait events;
• 12 – Level 4 + Level 8.
04 de Agosto de 2018, São Paulo, Brasil
Tuning – Where?
• SQL TRACE
• Extended Trace, with ORADEBUG:
04 de Agosto de 2018, São Paulo, Brasil
AWR
Examples
04 de Agosto de 2018, São Paulo, Brasil
AWR
04 de Agosto de 2018, São Paulo, Brasil
AWR
04 de Agosto de 2018, São Paulo, Brasil
AWR
04 de Agosto de 2018, São Paulo, Brasil
AWR
04 de Agosto de 2018, São Paulo, Brasil
AWR
04 de Agosto de 2018, São Paulo, Brasil
AWR
04 de Agosto de 2018, São Paulo, Brasil
AWR
04 de Agosto de 2018, São Paulo, Brasil
AWR
04 de Agosto de 2018, São Paulo, Brasil
AWR
04 de Agosto de 2018, São Paulo, Brasil
Question:
Is it possible to answer that is
Bad?
04 de Agosto de 2018, São Paulo, Brasil
AWR
Comparative
04 de Agosto de 2018, São Paulo, Brasil
AWR
04 de Agosto de 2018, São Paulo, Brasil
AWR
04 de Agosto de 2018, São Paulo, Brasil
AWR
04 de Agosto de 2018, São Paulo, Brasil
AWR
04 de Agosto de 2018, São Paulo, Brasil
AWR
04 de Agosto de 2018, São Paulo, Brasil
AWR
831ms x 1759 ms
8ms x 12 ms
04 de Agosto de 2018, São Paulo, Brasil
AWR
04 de Agosto de 2018, São Paulo, Brasil
Million Dollar Question:
Something has changed?
04 de Agosto de 2018, São Paulo, Brasil
DBA_HIST*
04 de Agosto de 2018, São Paulo, Brasil
AWR
04 de Agosto de 2018, São Paulo, Brasil
AWR – DBA_HIST_SQLSTAT
•
04 de Agosto de 2018, São Paulo, Brasil
AWR
04 de Agosto de 2018, São Paulo, Brasil
AWR
04 de Agosto de 2018, São Paulo, Brasil
AWR
04 de Agosto de 2018, São Paulo, Brasil
AWR
04 de Agosto de 2018, São Paulo, Brasil
AWR
04 de Agosto de 2018, São Paulo, Brasil
AWR
04 de Agosto de 2018, São Paulo, Brasil
AWR
04 de Agosto de 2018, São Paulo, Brasil
eDB360
Examples
04 de Agosto de 2018, São Paulo, Brasil
04 de Agosto de 2018, São Paulo, Brasil
04 de Agosto de 2018, São Paulo, Brasil
04 de Agosto de 2018, São Paulo, Brasil
04 de Agosto de 2018, São Paulo, Brasil
04 de Agosto de 2018, São Paulo, Brasil
04 de Agosto de 2018, São Paulo, Brasil
04 de Agosto de 2018, São Paulo, Brasil
04 de Agosto de 2018, São Paulo, Brasil
ASH
Examples
04 de Agosto de 2018, São Paulo, Brasil
ASH
http://blog.tanelpoder.com/files/scripts/ash/dashtop.sql
04 de Agosto de 2018, São Paulo, Brasil
ASH
@dashtop "session_state,event,sql_id,sql_plan_hash_value" "session_type='FOREGROUND'" "TO_TIMESTAMP('01-08-2017
15:00:00', 'DD-MM-YYYY HH24:MI:SS')" "TO_TIMESTAMP('01-08-2017 15:20:00', 'DD-MM-YYYY HH24:MI:SS')"
04 de Agosto de 2018, São Paulo, Brasil
ASH
04 de Agosto de 2018, São Paulo, Brasil
ASH
04 de Agosto de 2018, São Paulo, Brasil
ASH
04 de Agosto de 2018, São Paulo, Brasil
ASH
04 de Agosto de 2018, São Paulo, Brasil
ASH
@dashtop "session_state,event,sql_id,sql_plan_hash_value" "session_type='FOREGROUND'" "TO_TIMESTAMP('02-08-2017
15:00:00', 'DD-MM-YYYY HH24:MI:SS')" "TO_TIMESTAMP('02-08-2017 15:20:00', 'DD-MM-YYYY HH24:MI:SS')"
04 de Agosto de 2018, São Paulo, Brasil
ASH
Same time interval: 9:00 AM to 6:00 PM
04 de Agosto de 2018, São Paulo, Brasil
ASH – Drill Down
@dashtop "session_state,event" "session_type='FOREGROUND'" "TO_TIMESTAMP('01-08-2017 09:15:00', 'DD-MM-YYYY
HH24:MI:SS')" "TO_TIMESTAMP('01-08-2017 12:15:00', 'DD-MM-YYYY HH24:MI:SS')"
04 de Agosto de 2018, São Paulo, Brasil
ASH – Drill Down
@dashtop "session_state,sql_id" "event='db file sequential read'" "TO_TIMESTAMP('01-08-2017 09:15:00', 'DD-MM-YYYY
HH24:MI:SS')" "TO_TIMESTAMP('01-08-2017 12:15:00', 'DD-MM-YYYY HH24:MI:SS')"
04 de Agosto de 2018, São Paulo, Brasil
SQL Trace
Sample
04 de Agosto de 2018, São Paulo, Brasil
SQL Trace - TKPROF
04 de Agosto de 2018, São Paulo, Brasil
Wait Events
Sample
04 de Agosto de 2018, São Paulo, Brasil
Wait Events
04 de Agosto de 2018, São Paulo, Brasil
Wait Events
04 de Agosto de 2018, São Paulo, Brasil
Questions?
04 de Agosto de 2018, São Paulo, Brasil
Stay in Touch!
blog@viniciusdba.com.br
twitter.com/viniciusdba
facebook.com/viniciusdba
04 de Agosto de 2018, São Paulo, Brasil

2018 - GUOB Tech Day /Oracle Developer Community LAD Tour 2018 - Tuning DBA Main Tasks

  • 1.
    04 de Agostode 2018, São Paulo, Brasil Performance Tuning DBA – Main Tasks Marcus Vinicius Miguel Pedro
  • 2.
    04 de Agostode 2018, São Paulo, Brasil Agenda • Speaker • Tuning • Main Tasks • How? • When? • Where? • Examples • Q&A • Contact
  • 3.
    04 de Agostode 2018, São Paulo, Brasil Marcus Vinicius Miguel Pedro • Blog: www.viniciusdba.com.br; • 21 years working in IT Industry; • 13+ years working with Oracle Database; • GUOB Board Member; • Speaker in Oracle-related events: GUOB, IFSP, FATEC, OOW; • Working as Sr. Database Consultant in Accenture Enkitec Group; • Worked as Sr. Database Consultant in Oracle ACS; • Worked as IT Operations Manager in Discover Technology (former Brazilian Oracle Platinum Partner); • Worked as Sr. Database Consultant in Discover Technology; • Certifications: - Oracle Database 9i Administrator Certified Associate (OCA); - Oracle Database 9i Administrator Certified Professional (OCP); - Oracle Database 10g Administrator Certified Professional (OCP); - Oracle Database 10g: RAC Administrator Certified Expert (OCE RAC 10g); - Oracle Database 11g Administrator Certified Professional (OCP); - Oracle Database 11g Certified Implementation Specialist (OCS); - Oracle Database 11g Grid & RAC Cerified Expert (OCE RAC 11g); - Oracle Database 11g Tuning Certified Expert (OCE Tuning 11g); - Oracle Database 12c Certified Professional (OCP); - Oracle Database Cloud Service Operations Certified Associate; - Oracle Database Cloud Administrator Certified Professional; - Oracle Database 12c Tuning Certified Expert (OCE Tuning 12c); - Oracle ACE. http://apex.oracle.com/pls/otn/f?p=19297:4:1452013536248361::NO:4:P4_ID:2540
  • 4.
    04 de Agostode 2018, São Paulo, Brasil • Global systems integrator focused on the Oracle platform • Consultants average 15+ years of Oracle experience • Worldwide specialist in Engineered Systems implementations • 14 Oracle ACE members, specialist recognized by Oracle for their technical expertise Elite Expertise Oracle Specializations* • Oracle Exadata • Oracle Exalogic • Oracle Database • Oracle GoldenGate • Oracle Data Integrator • Oracle Database • Oracle Data Warehouse • Oracle Real Application Cluster • Oracle Performance Tuning • Oracle Database Security Thought Leadership Success Our consultants have been published in multiple subject areas and additional online resources that demonstrate Accenture’s experience and expertise with the OES platform Oracle Engineered Systems Numbers • 1000+ Oracle Engineered Systems which AEG have configured, patched or supported. • 140+ AEG resources which have an average 15+ years of Oracle experience • AEG Support across 9 countries • 200 Oracle Engineered Systems (Exadata/Exalogic etc) currently under management directly by AEG • 200+ customers in either the AEG Managed Services program or remoteDBA program • 50,000 Accenture Oracle IDC resources that can be leveraged for Level 1 & Level 2 support ACCENTURE ENKITEC GROUP CAPABILITIES OVERVIEW
  • 5.
    04 de Agostode 2018, São Paulo, Brasil Performance Tuning - Main Tasks • Compare periods: identify behaviour change; • Monitor performance metrics; • Backup time & resource usage; • Monitor memory & CPU usage; • Monitor I/O metrics; • Monitor and maintain CBO statistics; • Database growth; • Monitor object usage; • Manage database objects; • SQL and PL/SQL debuggin • Database upgrade; • Etc...
  • 6.
    04 de Agostode 2018, São Paulo, Brasil Tuning Methods History
  • 7.
    04 de Agostode 2018, São Paulo, Brasil Tuning – How? • Effective Tuning Goals: • Specific; • Measurable; • Achievable. Database needs to be more faster!! Time is money!
  • 8.
    04 de Agostode 2018, São Paulo, Brasil Tuning – How? • Effective Tuning Goals: • Specific; • Measurable; • Achievable; • Cost effective. The sales report must be executed in 2 hours
  • 9.
    04 de Agostode 2018, São Paulo, Brasil Tuning – Goals Response Time User Wait Time Throughput Scalable
  • 10.
    04 de Agostode 2018, São Paulo, Brasil Tuning – How?
  • 11.
    04 de Agostode 2018, São Paulo, Brasil Tuning – How? Scalable App Possibly needs SQL Tuning Needs instance/ RAC Tuning CPU time Wait time No gain achieved by adding CPUs/nodes DB time = DB CPU time + DB wait time
  • 12.
    04 de Agostode 2018, São Paulo, Brasil What Does the DBA Tune? Performance tuning areas: – Application: • SQL statement performance • Change management – Instance tuning: • Memory • Database structure • Instance configuration – Operating system interactions: • I/O • Swap • Parameters Shared with developers Shared with SA
  • 13.
    04 de Agostode 2018, São Paulo, Brasil Types of Tuning Proactive
  • 14.
    04 de Agostode 2018, São Paulo, Brasil Types of Tuning Reactive
  • 15.
    04 de Agostode 2018, São Paulo, Brasil Tuning Methodology • Tuning steps: – Identify the scope of the problem (OS, database, and so on). – Tune the following from the top down: • The design before tuning the application code • The code before tuning the instance – Tune the area with the greatest potential benefit: • Identify the performance problem. • Analyze the problem, looking for skewed and tunable components. • Use appropriate tools to tune the components implicated. – Stop tuning when the goal is met.
  • 16.
    04 de Agostode 2018, São Paulo, Brasil Tuning – How? • App is new? • Yes • Deployment of: – New application and database • Take baseline. • Monitor growth and performance. – New application in existing database • Take baseline before deployment. • Take baseline after deployment. • Compare baselines.
  • 17.
    04 de Agostode 2018, São Paulo, Brasil Tuning – How? • App is new? • No What Has Changed? Where is the Baseline?
  • 18.
    04 de Agostode 2018, São Paulo, Brasil What can be changed?
  • 19.
    04 de Agostode 2018, São Paulo, Brasil What can be changed?
  • 20.
    04 de Agostode 2018, São Paulo, Brasil What can be changed? • More active users / More transactions; • Data volume change; • Application change (deployment); • Lack of updated statistics; • Statistics gathered; • Schema change; • Database parameter change; • Database upgrade; • OS change; • Hardware change.
  • 21.
    04 de Agostode 2018, São Paulo, Brasil Tuning – How? • Licensing: • Enterprise Edition + Diagnostic Pack: AWR, ASH, DBA_HIST*, etc...; • Enterprise Edition: Statspack, V$* except V$ACTIVE_SESSION_HISTORY; • Standard Edition: Statspack, V$* except V$ACTIVE_SESSION_HISTORY;
  • 22.
    04 de Agostode 2018, São Paulo, Brasil Tuning – How? • Differences between AWR and Statspack: • Statspack not include ASH data. In AWR data are in DBA_HIST_ACTIVE_SESS_HISTORY; • Statspack not store history for new metric statistics that were introduced in 10g and can be visualized by key-views in the AWR: DBA_HIST_SYSMETRIC_HISTORY and DBA_HIST_SYSMETRIC_SUMMARY; • The Statspack snapshots needs do be manually generated. In AWR, the snapshot genearation are automatically generated in a 60 minutes interval by default and DBAs can change the interval as their needs. • The purge for old/history data from Statspack must be done manually. In AWR this purge is executed automatically in a job nightly routine by MMON background process. By default, there is a 7-day retention (changeable). If tablespace SYSAUX is running out of space, there will be a purge automatically in the oldest snapshots.
  • 23.
    04 de Agostode 2018, São Paulo, Brasil Tuning – How? • Free: • SQLdb360: https://github.com/sqldb360/sqldb360 : eDB360 + SQLd360 Carlos Sierra + Mauro Pagano
  • 24.
    04 de Agostode 2018, São Paulo, Brasil Tuning – When? All the time!
  • 25.
    04 de Agostode 2018, São Paulo, Brasil Tuning – Where? User
  • 26.
    04 de Agostode 2018, São Paulo, Brasil Tuning – Where? • AWR:
  • 27.
    04 de Agostode 2018, São Paulo, Brasil Tuning – Where? • AWR – Baseline:
  • 28.
    04 de Agostode 2018, São Paulo, Brasil Tuning – Where? • AWR – Purge:
  • 29.
    04 de Agostode 2018, São Paulo, Brasil Tuning – Where? • AWR – Settings:
  • 30.
    04 de Agostode 2018, São Paulo, Brasil Tuning – Where? • AWR – Data:
  • 31.
    04 de Agostode 2018, São Paulo, Brasil Tuning – Where? • ASH – Overview: • Keep DB Time history; • Does sampling from sessions activity including: • SQL_ID; • OBJECT_ID, FILE_ID, BLOCK_ID; • Wait Events and Parameters; • SID e SERIAL#; • MODULE an ACTION_NAME; • Blocking Session; • Etc. • You can use as your first step/tool to analyze a performance issue; • Not need to reproduce workload.
  • 32.
    04 de Agostode 2018, São Paulo, Brasil Tuning – Where? • ASH – Mechanism:
  • 33.
    04 de Agostode 2018, São Paulo, Brasil Tuning – Where? • ASH – Example:
  • 34.
    04 de Agostode 2018, São Paulo, Brasil Tuning – Where? • ASH – How query data? • Trace Dump ASH; • V$ACTIVE_SESSION_HISTORY; • DBA_HIST_ACTIVE_SESS_HISTORY; • ASH Report; • EM’s Performance Page; • ADDM.
  • 35.
    04 de Agostode 2018, São Paulo, Brasil Tuning – Where? • Wait Events – What are they? • A session is not only executing all the time! • Each session must be wait for some resource at some point; • Each type of wait is an event in the database; • In 11gR2 there is 1367 wait events; • In 12cR1 there is 1650 wait events; • Wait Events = Code Instrumentation;
  • 36.
    04 de Agostode 2018, São Paulo, Brasil Tuning – Where? • SQL TRACE • Can be activated by instance or by session; • Execution statistics from SQL; • Can be formated using TKPROF.
  • 37.
    04 de Agostode 2018, São Paulo, Brasil Tuning – Where? • SQL TRACE – Initialization Parameter
  • 38.
    04 de Agostode 2018, São Paulo, Brasil Tuning – Where? • SQL TRACE • To activate in instance: • To activate in a specific session: • To activate in another session:
  • 39.
    04 de Agostode 2018, São Paulo, Brasil Tuning – Where? • SQL TRACE • Sintax tkprof • Examples:
  • 40.
    04 de Agostode 2018, São Paulo, Brasil Tuning – Where? • SQL TRACE • Extended Trace: 10046 Trace levels • 0 - no statistics; • 1 - basic statistics CURSOR, PARSE, EXEC, FETCH ERROR, SORT UMAP, ERROR, UMAP, STATS and XCTEND. Same as sql_trace=true; • 4 – Same as level 1, but adds BIND section; • 8 – Same as level 1, but includes wait events; • 12 – Level 4 + Level 8.
  • 41.
    04 de Agostode 2018, São Paulo, Brasil Tuning – Where? • SQL TRACE • Extended Trace, with ORADEBUG:
  • 42.
    04 de Agostode 2018, São Paulo, Brasil AWR Examples
  • 43.
    04 de Agostode 2018, São Paulo, Brasil AWR
  • 44.
    04 de Agostode 2018, São Paulo, Brasil AWR
  • 45.
    04 de Agostode 2018, São Paulo, Brasil AWR
  • 46.
    04 de Agostode 2018, São Paulo, Brasil AWR
  • 47.
    04 de Agostode 2018, São Paulo, Brasil AWR
  • 48.
    04 de Agostode 2018, São Paulo, Brasil AWR
  • 49.
    04 de Agostode 2018, São Paulo, Brasil AWR
  • 50.
    04 de Agostode 2018, São Paulo, Brasil AWR
  • 51.
    04 de Agostode 2018, São Paulo, Brasil AWR
  • 52.
    04 de Agostode 2018, São Paulo, Brasil Question: Is it possible to answer that is Bad?
  • 53.
    04 de Agostode 2018, São Paulo, Brasil AWR Comparative
  • 54.
    04 de Agostode 2018, São Paulo, Brasil AWR
  • 55.
    04 de Agostode 2018, São Paulo, Brasil AWR
  • 56.
    04 de Agostode 2018, São Paulo, Brasil AWR
  • 57.
    04 de Agostode 2018, São Paulo, Brasil AWR
  • 58.
    04 de Agostode 2018, São Paulo, Brasil AWR
  • 59.
    04 de Agostode 2018, São Paulo, Brasil AWR 831ms x 1759 ms 8ms x 12 ms
  • 60.
    04 de Agostode 2018, São Paulo, Brasil AWR
  • 61.
    04 de Agostode 2018, São Paulo, Brasil Million Dollar Question: Something has changed?
  • 62.
    04 de Agostode 2018, São Paulo, Brasil DBA_HIST*
  • 63.
    04 de Agostode 2018, São Paulo, Brasil AWR
  • 64.
    04 de Agostode 2018, São Paulo, Brasil AWR – DBA_HIST_SQLSTAT •
  • 65.
    04 de Agostode 2018, São Paulo, Brasil AWR
  • 66.
    04 de Agostode 2018, São Paulo, Brasil AWR
  • 67.
    04 de Agostode 2018, São Paulo, Brasil AWR
  • 68.
    04 de Agostode 2018, São Paulo, Brasil AWR
  • 69.
    04 de Agostode 2018, São Paulo, Brasil AWR
  • 70.
    04 de Agostode 2018, São Paulo, Brasil AWR
  • 71.
    04 de Agostode 2018, São Paulo, Brasil AWR
  • 72.
    04 de Agostode 2018, São Paulo, Brasil eDB360 Examples
  • 73.
    04 de Agostode 2018, São Paulo, Brasil
  • 74.
    04 de Agostode 2018, São Paulo, Brasil
  • 75.
    04 de Agostode 2018, São Paulo, Brasil
  • 76.
    04 de Agostode 2018, São Paulo, Brasil
  • 77.
    04 de Agostode 2018, São Paulo, Brasil
  • 78.
    04 de Agostode 2018, São Paulo, Brasil
  • 79.
    04 de Agostode 2018, São Paulo, Brasil
  • 80.
    04 de Agostode 2018, São Paulo, Brasil
  • 81.
    04 de Agostode 2018, São Paulo, Brasil ASH Examples
  • 82.
    04 de Agostode 2018, São Paulo, Brasil ASH http://blog.tanelpoder.com/files/scripts/ash/dashtop.sql
  • 83.
    04 de Agostode 2018, São Paulo, Brasil ASH @dashtop "session_state,event,sql_id,sql_plan_hash_value" "session_type='FOREGROUND'" "TO_TIMESTAMP('01-08-2017 15:00:00', 'DD-MM-YYYY HH24:MI:SS')" "TO_TIMESTAMP('01-08-2017 15:20:00', 'DD-MM-YYYY HH24:MI:SS')"
  • 84.
    04 de Agostode 2018, São Paulo, Brasil ASH
  • 85.
    04 de Agostode 2018, São Paulo, Brasil ASH
  • 86.
    04 de Agostode 2018, São Paulo, Brasil ASH
  • 87.
    04 de Agostode 2018, São Paulo, Brasil ASH
  • 88.
    04 de Agostode 2018, São Paulo, Brasil ASH @dashtop "session_state,event,sql_id,sql_plan_hash_value" "session_type='FOREGROUND'" "TO_TIMESTAMP('02-08-2017 15:00:00', 'DD-MM-YYYY HH24:MI:SS')" "TO_TIMESTAMP('02-08-2017 15:20:00', 'DD-MM-YYYY HH24:MI:SS')"
  • 89.
    04 de Agostode 2018, São Paulo, Brasil ASH Same time interval: 9:00 AM to 6:00 PM
  • 90.
    04 de Agostode 2018, São Paulo, Brasil ASH – Drill Down @dashtop "session_state,event" "session_type='FOREGROUND'" "TO_TIMESTAMP('01-08-2017 09:15:00', 'DD-MM-YYYY HH24:MI:SS')" "TO_TIMESTAMP('01-08-2017 12:15:00', 'DD-MM-YYYY HH24:MI:SS')"
  • 91.
    04 de Agostode 2018, São Paulo, Brasil ASH – Drill Down @dashtop "session_state,sql_id" "event='db file sequential read'" "TO_TIMESTAMP('01-08-2017 09:15:00', 'DD-MM-YYYY HH24:MI:SS')" "TO_TIMESTAMP('01-08-2017 12:15:00', 'DD-MM-YYYY HH24:MI:SS')"
  • 92.
    04 de Agostode 2018, São Paulo, Brasil SQL Trace Sample
  • 93.
    04 de Agostode 2018, São Paulo, Brasil SQL Trace - TKPROF
  • 94.
    04 de Agostode 2018, São Paulo, Brasil Wait Events Sample
  • 95.
    04 de Agostode 2018, São Paulo, Brasil Wait Events
  • 96.
    04 de Agostode 2018, São Paulo, Brasil Wait Events
  • 97.
    04 de Agostode 2018, São Paulo, Brasil Questions?
  • 98.
    04 de Agostode 2018, São Paulo, Brasil Stay in Touch! blog@viniciusdba.com.br twitter.com/viniciusdba facebook.com/viniciusdba
  • 99.
    04 de Agostode 2018, São Paulo, Brasil