Automatic Performance Management Copyright © 2006, Oracle. All rights reserved. Objectives Tuning Statistics SGA Attach AWR Advisors Async. Commit After completing this lesson, you should be able to: • Diagnose database performance issues • Configure the Automatic Workload Repository • Access the database advisors • Use the SQL Access Advisor to improve database performance • Use asynchronous COMMIT effectively 9-2 Copyright © 2006, Oracle. All rights reserved. Tuning Activities The three activities in performance management are: • Performance planning • Instance tuning • SQL tuning 9-3 Copyright © 2006, Oracle. All rights reserved. Performance Planning • • • • • • 9-4 Investment options System architecture Scalability Application design principles Workload testing, modeling, and implementation Deploying new applications Copyright © 2006, Oracle. All rights reserved. Instance Tuning • • • • 9-6 Have well-defined goals. Allocate memory to database structures. Consider I/O requirements in each part of the database. Tune the operating system for optimal performance of the database. Copyright © 2006, Oracle. All rights reserved. Performance Tuning Methodology The tuning steps: • Tune from the top down. Tune: – The design before tuning the application code – The code before tuning the instance • Tune the area with the greatest potential benefit. – Identify the longest waits. – Identify the largest service times. • 9-7 Stop tuning when the goal is met. Copyright © 2006, Oracle. All rights reserved. Statistics Collection • • Performance tuning depends on the collection of accurate statistics. There are different types of statistics: – Optimizer statistics – System statistics • There are different methods of collecting statistics: – Automatically, through GATHER_STATS_JOB – Manually, with the DBMS_STATS package – By setting database initialization parameters – By importing statistics from another database 9-8 Copyright © 2006, Oracle. All rights reserved. Oracle Wait Events • • 9-10 Tuning > Statistics SGA Attach AWR Advisors Async. Commit A collection of wait events provides information about the sessions or processes that had to wait or must wait for different reasons. These events are listed in the V$EVENT_NAME view. Copyright © 2006, Oracle. All rights reserved. System Statistics V$SYSSTAT • statistic# • name • class • value • stat_id V$SYSTEM_WAIT_CLASS • wait_class_id • wait_class# • wait_class • total_waits • time_waited V$EVENT_NAME • event_number • event_id • name • parameter1 • parameter2 • parameter3 • wait_class 9-11 V$SGASTAT • pool • name • bytes V$SYSTEM_EVENT • event • total_waits • total_timeouts • time_waited • average_wait • time_waited_micro Copyright © 2006, Oracle. All rights reserved. Displaying Session-Related Statistics V$STATNAME • statistic# • name • class V$SESSTAT • sid • statistic# • value V$SESSION_EVENT • sid • event • total_waits • total_timeouts • time_waited • average_wait • max_wait • time_waited_micro • event_id 9-13 V$EVENT_NAME • event# • name • parameter1 • parameter2 • parameter3 V$SESSION • sid • serial# • username • command • osuser • seq# • event# • event • p1/2/3text • p1/2/3 • p1/2/3raw • wait_class • wait_time • seconds_in_wait • state • ... Copyright © 2006, Oracle. All rights reserved. Displaying Service-Related Statistics For n-tier environments, because session statistics are not as helpful, you can see service-level statistics in these views: • V$SERVICE_EVENT: Aggregated wait counts and wait times for each service, on a per event basis • V$SERVICE_WAIT_CLASS: Aggregated wait counts and wait times for each service on a wait class basis 9-14 Copyright © 2006, Oracle. All rights reserved. Troubleshooting and Tuning Views Instance/Database V$DATABASE V$INSTANCE V$PARAMETER V$SPPARAMETER V$SYSTEM_PARAMETER V$PROCESS V$BGPROCESS V$PX_PROCESS_SYSSTAT V$SYSTEM_EVENT Memory V$BUFFER_POOL_STATISTICS V$LIBRARYCACHE V$SGAINFO V$PGASTAT 9-15 Disk V$DATAFILE V$FILESTAT V$LOG V$LOG_HISTORY V$DBFILE V$TEMPFILE V$TEMPSEG_USAGE V$SEGMENT_STATISTICS Contention V$LOCK V$UNDOSTAT V$WAITSTAT V$LATCH Copyright © 2006, Oracle. All rights reserved. Dictionary Views • The following dictionary and special views provide useful statistics after using the DBMS_STATS package: – – – – • 9-16 DBA_TABLES, DBA_TAB_COLUMNS DBA_CLUSTERS DBA_INDEXES DBA_TAB_HISTOGRAMS This statistical information is static until you reexecute the appropriate procedures in DBMS_STATS. Copyright © 2006, Oracle. All rights reserved. Diagnosis of Hung or Extremely Slow Databases Tuning Statistics > SGA Attach AWR Advisors Async. Commit Use for problem analysis when the database is performing very slowly, or is hung: • Direct access to SGA for performance monitoring (memory access mode) – – – – V$SESSION V$SESSION_WAIT V$SYSTEM_EVENT V$SYSSTAT – Hang analysis using Enterprise Manager 9-17 Copyright © 2006, Oracle. All rights reserved. Using Memory Access Mode 1 4 2 3 9-18 Copyright © 2006, Oracle. All rights reserved. Using the Hang Analysis Page Micro-window 9-19 Copyright © 2006, Oracle. All rights reserved. Automatic Workload Repository MMON ADDM finds top problems. SYSAUX SGA In-memory statistics 6:00 a.m. 7:00 a.m. 8:00 a.m. 9:00 a.m. Snapshot 1 Snapshot 2 Snapshot 3 Snapshot 4 9:30 a.m. 9-21 Copyright © 2006, Oracle. All rights reserved. Tuning Statistics SGA Attach > AWR Advisors Async. Commit AWR Snapshot Baselines Relevant period in the past DBMS_WORKLOAD_REPOSITORY.CREATE_BASELINE ( start_snap_id IN NUMBER , end_snap_id IN NUMBER , baseline_name IN VARCHAR2); 9-23 Copyright © 2006, Oracle. All rights reserved. Tuning Statistics SGA Attach AWR > Advisors Async. Commit Advisory Framework: Overview SQL Tuning Advisor PGA Buffer Cache Advisor Memory ADDM PGA Advisor SGA SQL Access Advisor Library Cache Advisor Segment Advisor Space Undo Advisor 9-24 Copyright © 2006, Oracle. All rights reserved. Database Control and Advisors 9-26 Copyright © 2006, Oracle. All rights reserved. Typical Advisor Tuning Session Create an advisor task. Adjust task parameters. Perform analysis. No Implement recommendations. 9-27 Copyright © 2006, Oracle. All rights reserved. Accept results? Yes Manually Invoking ADDM 9-28 Copyright © 2006, Oracle. All rights reserved. Using the SQL Tuning Advisor: Review • • Use the SQL Tuning Advisor to analyze SQL statements and obtain performance recommendations. Sources for SQL Tuning Advisor to analyze: – Top SQL: Analyzes the top SQL statements currently active – SQL Tuning Sets: Analyzes a set of SQL statements you provide – Snapshots: Analyzes a snapshot – Baselines: Analyzes a baseline 9-29 Copyright © 2006, Oracle. All rights reserved. SQL Access Advisor: Overview Workload specification -SQL statement -SQL Tuning Set -SQL cache contents -Statistics -Schema name Recommendations -Indexes -Materialized views -Materialized view logs SQL Access Advisor 9-30 Copyright © 2006, Oracle. All rights reserved. Typical SQL Access Advisor Session 9-31 Copyright © 2006, Oracle. All rights reserved. Workload Source 9-32 Copyright © 2006, Oracle. All rights reserved. Recommendation Options 9-33 Copyright © 2006, Oracle. All rights reserved. Recommendation Options 9-34 Copyright © 2006, Oracle. All rights reserved. Reviewing Recommendations 9-35 Copyright © 2006, Oracle. All rights reserved. Asynchronous COMMIT • • • • The default COMMIT behavior is to wait until redo is saved in the redo log files. The default behavior can now be changed to “not wait.” Asynchronous COMMIT is useful for high transaction throughput. However, transactions may be lost. – Machine crashes – File I/O problems with redo log files 9-36 Tuning Statistics SGA Attach AWR Advisors > Async. Commit Copyright © 2006, Oracle. All rights reserved. Using Asynchronous COMMIT • Possible combinations: – – – – • IMMEDIATE, WAIT (this is the default) IMMEDIATE, NOWAIT BATCH, WAIT BATCH, NOWAIT System- or session-level examples: ALTER SYSTEM SET COMMIT_WRITE = IMMEDIATE, WAIT ALTER SESSION SET COMMIT_WRITE = IMMEDIATE, NOWAIT • COMMIT statement examples: COMMIT WRITE BATCH WAIT COMMIT WRITE BATCH NOWAIT 9-37 Copyright © 2006, Oracle. All rights reserved. Summary In this lesson, you should have learned how to: • Diagnose database performance issues • Configure the Automatic Workload Repository • Access the database advisors • Use the SQL Access Advisor to improve database performance • Use asynchronous COMMIT effectively 9-38 Copyright © 2006, Oracle. All rights reserved. Practice Overview: Using ADDM to Diagnose Performance Problems This practice covers the following topics: • Viewing and interpreting ADDM findings to diagnose a performance problem • Implementing those findings 9-39 Copyright © 2006, Oracle. All rights reserved.