12c Performacne Tunning

1 Performance Tuning Overview

Introduction to Performance Tuning

Performance Planning

Instance Tuning

Performance Principles.

Baselines.

The Symptoms and the Problems.

When to Tune .

Proactive Monitoring

Bottleneck Elimination

SQL Tuning

Query Optimizer and Execution Plans

Introduction to Performance Tuning Features and Tools

Automatic Performance Tuning Features.

Additional Oracle Database Tools

V$ Performance Views

2 Designing and Developing for Performance

Oracle Methodology

Understanding Investment Options

Understanding Scalability

What is Scalability?

System Scalability

Factors Preventing Scalability

System Architecture

Hardware and Software Components

Hardware Components.

CPU.

Memory

I/O Subsystem.

Network

Software Components.

Managing the User Interface

Implementing Business Logic

Managing User Requests and Resource Allocation

Managing Data and Transactions

Configuring the Right System Architecture for Your Requirements.

Application Design Principles

Simplicity In Application Design.

Data Modeling

Table and Index Design.

Appending Columns to an Index or Using Index-Organized Tab

Using a Different Index Type.

B-Tree Indexes .

Bitmap Indexes .

Function-based Indexes

Partitioned Indexes

Reverse Key Indexes.

Finding the Cost of an Index.

Serializing within Indexes

Ordering Columns in an Index

Using Views

SQL Execution Efficiency.

Implementing the Application

Trends in Application Development

Workload Testing, Modeling, and Implementation

Sizing Data.

Estimating Workloads.

Extrapolating From a Similar System

Benchmarking.

Application Modeling

Testing, Debugging, and Validating a Design

Deploying New Applications

Rollout Strategies.

Performance Checklist.

3 Performance Improvement Methods

The Oracle Performance Improvement Method

Steps in the Oracle Performance Improvement Method

A Sample Decision Process for Performance Conceptual Modeling.

Top Ten Mistakes Found in Oracle Systems.

Emergency Performance Methods

Steps in the Emergency Performance Method.

4 Configuring a Database for Performance

Performance Considerations for Initial Instance Configuration

Initialization Parameters.

Configuring Undo Space

Sizing Redo Log Files

Creating Subsequent Tablespaces

Creating Permanent Tablespaces – Automatic Segment-Space

Creating Temporary Tablespaces.

Creating and Maintaining Tables for Optimal Performance

Table Compression

Estimating the Compression Factor

Tuning to Achieve a Better Compression Ratio

Using Attribute-Clustered Tables

Reclaiming Unused Space.

Indexing Data.

Specifying Memory for Sorting Data.

Performance Considerations for Shared Servers

Identifying Contention Using the Dispatcher-Specific Views

Reducing Contention for Dispatcher Processes.

Identifying Contention for Shared Servers.

5 Measuring Database Performance

About Database Statistics

Time Model Statistics.

Active Session History Statistics

Wait Events Statistics.

Session and System Statistics.

Interpreting Database Statistics

Using Hit Ratios

Using Wait Events with Timed Statistics

Using Wait Events without Timed Statistics.

Using Idle Wait Events.

Comparing Database Statistics with Other Factors

Using Computed Statistics.

6 Gathering Database Statistics

About Gathering Database Statistics

Automatic Workload Repository.

Snapshots

Baselines

Fixed Baselines.

Moving Window Baselines

Baseline Templates.

Single Baseline Templates

Repeating Baseline Templates

Space Consumption.

Adaptive Thresholds.

Percentage of Maximum Thresholds

Significance Level Thresholds

Managing the Automatic Workload Repository

Enabling the Automatic Workload Repository

Managing Snapshots

User Interfaces for Managing Snapshots

Creating Snapshots.

Creating Snapshots Using the Command-Line Interface.

Dropping Snapshots

Dropping Snapshots Using the Command-Line Interface

Modifying Snapshot Settings.

Modifying Snapshot Settings Using the Command-Line Int

Managing Baselines.

User Interface for Managing Baselines.

Creating a Baseline.

Creating a Baseline Using the Command-Line Interface.

Dropping a Baseline

Dropping a Baseline Using the Command-Line Interface

Renaming a Baseline

Renaming a Baseline Using the Command-Line Interface

Displaying Baseline Metrics

Displaying Baseline Metrics Using the Command-Line Inte

Resizing the Default Moving Window Baseline.

Resizing the Default Moving Window Using the Command

Managing Baseline Templates.

User Interfaces for Managing Baseline Templates.

Creating a Single Baseline Template

Creating a Single Baseline Template Using the Command

Creating a Repeating Baseline Template.

Creating a Repeating Baseline Template Using the Comm

Dropping a Baseline Template

Dropping a Baseline Template Using the Command-Line I

Transporting Automatic Workload Repository Data.

Extracting AWR Data

Loading AWR Data.

Using Automatic Workload Repository Views

Generating Automatic Workload Repository Reports

User Interface for Generating an AWR Report.

Generating an AWR Report Using the Command-Line Interface.

Generating an AWR Report for the Local Database.

Generating an AWR Report for a Specific Database

Generating an Oracle RAC AWR Report for the Local Databas

Generating an Oracle RAC AWR Report for a Specific Databas

Generating an AWR Report for a SQL Statement on the Local

Generating an AWR Report for a SQL Statement on a Specific

Generating Performance Hub Active Report

Overview of Performance Hub Active Report.

About Performance Hub Active Report Tabs

About Performance Hub Active Report Types

Command-Line User Interface for Generating a Performance Hub A

Generating a Performance Hub Active Report Using a SQL Script

7 Automatic Performance Diagnostics

Overview of the Automatic Database Diagnostic Monitor

ADDM Analysis

Using ADDM with Oracle Real Application Clusters

Real-Time ADDM Analysis.

Real-Time ADDM Connection Modes.

Real-Time ADDM Triggers

Real-Time ADDM Trigger Controls.

ADDM Analysis Results.

Reviewing ADDM Analysis Results: Example

Setting Up ADDM.

Diagnosing Database Performance Problems with ADDM

Running ADDM in Database Mode

Running ADDM in Instance Mode

Running ADDM in Partial Mode.

Displaying an ADDM Report

Views with ADDM Information

8 Comparing Database Performance Over Time

About Automatic Workload Repository Compare Periods Reports

Generating Automatic Workload Repository Compare Periods Reports

User Interfaces for Generating AWR Compare Periods Reports

Generating an AWR Compare Periods Report Using the Command

Generating an AWR Compare Periods Report for the Local Database

Generating an AWR Compare Periods Report for a Specific Database

Generating an Oracle RAC AWR Compare Periods Report

Generating an Oracle RAC AWR Compare Periods Report for a

Interpreting Automatic Workload Repository Compare Periods Reports

Summary of the AWR Compare Periods Report

Snapshot Sets.

Host Configuration Comparison

System Configuration Comparison.

Load Profile

Top 5 Timed Events

Details of the AWR Compare Periods Report

Time Model Statistics

Operating System Statistics

Wait Events.

Service Statistics.

SQL Statistics

Top 10 SQL Comparison by Execution Time.

Top 10 SQL Comparison by CPU Time.

Top 10 SQL Comparison by Buffer Gets.

Top 10 SQL Comparison by Physical Reads.

Top 10 SQL Comparison by Executions

Top 10 SQL Comparison by Parse Calls.

Complete List of SQL Text.

Instance Activity Statistics.

Key Instance Activity Statistics

Other Instance Activity Statistics

I/O Statistics

Tablespace I/O Statistics.

Top 10 File Comparison by I/O

Top 10 File Comparison by Read Time.

Top 10 File Comparison by Buffer Waits.

Advisory Statistics.

PGA Aggregate Summary.

PGA Aggregate Target Statistics.

Wait Statistics

Buffer Wait Statistics

Enqueue Activity

Undo Segment Summary

Latch Statistics

Segment Statistics

Top 5 Segments Comparison by Logical Reads

Top 5 Segments Comparison by Physical Reads

Top 5 Segments Comparison by Row Lock Waits.

Top 5 Segments Comparison by ITL Waits.

Top 5 Segments Comparison by Buffer Busy Waits

In-Memory Segment Statistics

Dictionary Cache Statistics.

Library Cache Statistics

Memory Statistics

Process Memory Summary

SGA Memory Summary.

SGA Breakdown Difference.

Streams Statistics.

Supplemental Information in the AWR Compare Periods Report.

init.ora Parameters

Complete List of SQL Text

9 Analyzing Sampled Data

About Active Session History9-1.

Generating Active Session History Reports

User Interfaces for Generating ASH Reports.

Generating an ASH Report Using the Command-Line Interface

Generating an ASH Report on the Local Database Instance

Generating an ASH Report on a Specific Database Instance.

Generating an ASH Report for Oracle RAC

Interpreting Results from Active Session History Reports

Top Events.

Top User Events.

Top Background Events

Top Event P1/P2/P3

Load Profile

Top Service/Module

Top Client IDs.

Top SQL Command Types.

Top Phases of Execution

Top SQL.

Top SQL with Top Events.

Top SQL with Top Row Sources.

Top SQL Using Literals.

Top Parsing Module/Action.

Complete List of SQL Text

Top PL/SQL

Top Java.

Top Sessions

Top Sessions

Top Blocking Sessions

Top Sessions Running PQs

Top Objects/Files/Latches

Top DB Objects.

Top DB Files.

Top Latches

Activity Over Time

10 Instance Tuning Using Performance Views

Instance Tuning Steps

Define the Problem.

Examine the Host System

CPU Usage.

Non-Oracle Processes.

Oracle Processes.

Oracle Database CPU Statistics

Interpreting CPU Statistics.

Identifying I/O Problems

Identifying I/O Problems Using V$ Views

Identifying I/O Problems Using Operating System Monitori

Identifying Network Issues

Examine the Oracle Database Statistics

Setting the Level of Statistics Collection.

V$STATISTICS_LEVEL.

Wait Events.

Dynamic Performance Views Containing Wait Event Statistics.

System Statistics.

V$ACTIVE_SESSION_HISTORY

V$SYSSTAT

V$FILESTAT

V$ROLLSTAT

V$ENQUEUE_STAT

V$LATCH.

Segment-Level Statistics.

Implement and Measure Change.

Interpreting Oracle Database Statistics

Examine Load

Changing Load

High Rates of Activity

Using Wait Event Statistics to Drill Down to Bottlenecks.

Table of Wait Events and Potential Causes.

Additional Statistics

Redo Log Space Requests Statistic

Read Consistency

Table Fetch by Continued Row.

Parse-Related Statistics

Wait Events Statistics

Changes to Wait Event Statistics from Past Releases.

buffer busy waits

Causes

Actions

segment header.

data block.

undo header.

undo block

db file scattered read

Actions

Managing Excessive I/O.

Inadequate I/O Distribution.

Finding the SQL Statement executed by Sessions Waiting for I/O

Finding the Object Requiring I/O.

db file sequential read

Actions

direct path read and direct path read temp

Causes

Actions

Sorts to Disk

Full Table Scans

Hash Area Size

direct path write and direct path write temp

Causes

Actions

enqueue (enq:) waits

Finding Locks and Lock Holders.

Actions

ST enqueue.

HW enqueue

TM enqueue.

TX enqueue.

events in wait class other.

free buffer waits

Causes

Actions

Writes.

Cache is Too Small

Cache Is Too Big for One DBWR

Consider Multiple Database Writer (DBWR) Processes or I/O S

DB_WRITER_PROCESSES.

DBWR_IO_SLAVES

Choosing Between Multiple DBWR Processes and I/O Slav

Idle Wait Events.

latch events

Actions

Example: Find Latches Currently Waited For.

Shared Pool and Library Cache Latch Contention

Unshared SQL.

Reparsed Sharable SQL

By Session.

cache buffers lru chain.

cache buffers chains

row cache objects

log file parallel write

library cache pin.

library cache lock

log buffer space

log file switch

Actions

log file sync.

rdbms ipc reply.

SQL*Net Events.

SQL*Net message from client.

Network Bottleneck

Resource Bottleneck on the Client Process.

SQL*Net message from dblink

SQL*Net more data to client.

Tuning Instance Recovery Performance: Fast-Start Fault Recovery

About Instance Recovery.

Cache Recovery (Rolling Forward).

Transaction Recovery (Rolling Back)

Checkpoints and Cache Recovery

How Checkpoints Affect Performance.

Fast Cache Recovery Tradeoffs

Configuring the Duration of Cache Recovery: FAST_START_MTTR_TARGET

Practical Values for FAST_START_MTTR_TARGET.

Reducing Checkpoint Frequency to Optimize Run-Time Performance

Monitoring Cache Recovery with V$INSTANCE_RECOVERY

Tuning FAST_START_MTTR_TARGET and Using MTTR Advisor.

Calibrate the FAST_START_MTTR_TARGET.

Determine the Practical Range for FAST_START_MTTR_TARGET

Determining Lower Bound for FAST_START_MTTR_TARGET

Determining Upper Bound for FAST_START_MTTR_TARGET

Selecting Preliminary Value for FAST_START_MTTR_TARGET

Evaluate Different Target Values with MTTR Advisor

Enabling MTTR Advisor.

Using MTTR Advisor

Viewing MTTR Advisor Results: V$MTTR_TARGET_ADVISORY

Determine the Optimal Size for Redo Logs

11 Database Memory Allocation

About Database Memory Caches and Other Memory Structures

Database Memory Management Methods

Automatic Memory Management.

Automatic Shared Memory Management.

Manual Shared Memory Management.

Automatic PGA Memory Management.

Manual PGA Memory Management.

Using Automatic Memory Management

Monitoring Memory Management

12 Tuning the System Global Area .

Using Automatic Shared Memory Management

User Interfaces for Setting the SGA_TARGET Parameter

Setting the SGA_TARGET Parameter in Oracle Enterprise Manager

Setting the SGA_TARGET Parameter in the Command-Line Interface

Setting the SGA_TARGET Parameter.

Enabling Automatic Shared Memory Management.

Disabling Automatic Shared Memory Management

Sizing the SGA Components Manually

SGA Sizing Unit

Maximum Size of the SGA.

Application Considerations.

Operating System Memory Use.

Reduce Paging

Fit the SGA into Main Memory

Viewing SGA Memory Allocation.

Locking the SGA into Physical Memory.

Allow Adequate Memory to Individual Users.

Iteration During Configuration

Monitoring Shared Memory Management

Configuring the In-Memory Column Store

About the In-Memory Column Store.

Performance Benefits of Using the In-Memory Column Store.

Estimating the Required Size of the In-Memory Column Store.

Sizing the In-Memory Column Store

13 Tuning the Database Buffer Cache

About the Database Buffer Cache

Configuring the Database Buffer Cache

Using the V$DB_CACHE_ADVICE View.

Calculating the Buffer Cache Hit Ratio.

Interpreting the Buffer Cache Hit Ratio

Increasing Memory Allocated to the Database Buffer Cache

Reducing Memory Allocated to the Database Buffer Cache.

Configuring Multiple Buffer Pools

Considerations for Using Multiple Buffer Pools

Random Access to Large Segments.

Oracle Real Application Cluster Instances

Using Multiple Buffer Pools

Using the V$DB_CACHE_ADVICE View for Individual Buffer Pools.

Calculating the Buffer Pool Hit Ratio for Individual Buffer Pools.

Examining the Buffer Cache Usage Pattern.

Examining the Buffer Cache Usage Pattern for All Segments

Examining the Buffer Cache Usage Pattern for a Specific Segments

Configuring the KEEP Pool

Configuring the RECYCLE Pool.

Configuring the Redo Log Buffer

Sizing the Redo Log Buffer

Using Redo Log Buffer Statistics

Configuring the Database Caching Mode

Default Database Caching Mode.

Force Full Database Caching Mode.

Determining When to Use Force Full Database Caching Mode

Verifying the Database Caching Mode.

14 Tuning the Shared Pool and the Large Pool

About the Shared Pool

Benefits of Using the Shared Pool.

Shared Pool Concepts.

Library Cache Concepts

Data Dictionary Cache Concepts

SQL Sharing Criteria.

Using the Shared Pool

Use Shared Cursors.

Use Single-User Logon and Qualified Table Reference

Use PL/SQL.

Avoid Performing DDL Operations.

Cache Sequence Numbers

Control Cursor Access.

Controlling Cursor Access Using OCI.

Controlling Cursor Access Using Oracle Precompilers

Controlling Cursor Access Using SQLJ

Controlling Cursor Access Using JDBC

Controlling Cursor Access Using Oracle Forms

Maintain Persistent Connections

Configuring the Shared Pool

Sizing the Shared Pool.

Using Library Cache Statistics

Using the V$LIBRARYCACHE View

Calculating the Library Cache Hit Ratio.

Viewing the Amount of Free Memory in the Shared Pool.

Using Shared Pool Advisory Statistics

About the V$SHARED_POOL_ADVICE View.

About the V$LIBRARY_CACHE_MEMORY View.

About V$JAVA_POOL_ADVICE and V$JAVA_LIBRARY_C

Using Dictionary Cache Statistics.

Increasing Memory Allocated to the Shared Pool.

Reducing Memory Allocated to the Shared Pool

Deallocating Cursors

Caching Session Cursors.

About the Session Cursor Cache

Enabling the Session Cursor Cache.

Sizing the Session Cursor Cache.

Sharing Cursors.

About Cursor Sharing

Forcing Cursor Sharing.

Keeping Large Objects to Prevent Aging.

Configuring the Reserved Pool

Sizing the Reserved Pool

Increasing Memory Allocated to the Reserved Pool.

Reducing Memory Allocated to the Reserved Pool

Configuring the Large Pool

Configuring the Large Pool for Shared Server Architecture.

Configuring the Large Pool for Parallel Query

Sizing the Large Pool.

Limiting Memory Use for User Sessions

Reducing Memory Use Using Three-Tier Connections

15 Tuning the Result Cache

About the Result Cache

Server Result Cache Concepts

Benefits of Using the Server Result Cache.

Understanding How the Server Result Cache Works.

How Results are Retrieved in a Query.

How Results are Retrieved in a View.

Client Result Cache Concepts.

Benefits of Using the Client Result Cache

Understanding How the Client Result Cache Works.

Configuring the Result Cache

Configuring the Server Result Cache.

Sizing the Server Result Cache Using Initialization Parameters

Managing the Server Result Cache Using DBMS_RESULT_CA

Viewing Memory Usage Statistics for the Server Result Ca

Flushing the Server Result Cache.

Configuring the Client Result Cache

Setting the Result Cache Mode

Requirements for the Result Cache.

Read Consistency Requirements

Query Parameter Requirements.

Restrictions for the Result Cache

Specifying Queries for Result Caching

Using SQL Result Cache Hints

Using the RESULT_CACHE Hint

Using the NO_RESULT_CACHE Hint

Using the RESULT_CACHE Hint in Views.

Using Result Cache Table Annotations

Using the DEFAULT Table Annotation.

Using the FORCE Table Annotation.

Monitoring the Result Cache

16 Tuning the Program Global Area .

About the Program Global Area

Work Area Sizes.

Sizing the Program Global Area

Configuring Automatic PGA Memory Management.

Setting the Initial Value for PGA_AGGREGATE_TARGET.

Monitoring Automatic PGA Memory Management.

Using the V$PGASTAT View

Using the V$PROCESS View.

Using the V$PROCESS_MEMORY View.

Using the V$SQL_WORKAREA_HISTOGRAM View.

Using the V$WORKAREA_ACTIVE View.

Using the V$SQL_WORKAREA View.

Tuning PGA_AGGREGATE_TARGET

Enabling Automatic Generation of PGA Performance Advisory

Using the V$PGA_TARGET_ADVICE View.

Using the V$PGA_TARGET_ADVICE_HISTOGRAM View

Using the V$SYSSTAT and V$SESSTAT Views

Tutorial: How to Tune PGA_AGGREGATE_TARGET

Limiting the Size of the Program Global Area

About PGA_AGGREGATE_LIMIT.

Setting PGA_AGGREGATE_LIMIT

17 I/O Configuration and Design

About I/O

I/O Configuration

Lay Out the Files Using Operating System or Hardware Striping.

Requested I/O Size.

Concurrency of I/O Requests

Alignment of Physical Stripe Boundaries with Block Size Bound

Manageability of the Proposed System.

Manually Distributing I/O

When to Separate Files

Tables, Indexes, and TEMP Tablespaces

Redo Log Files

Archived Redo Logs

Three Sample Configurations.

Stripe Everything Across Every Disk.

Move Archive Logs to Different Disks.

Move Redo Logs to Separate Disks

Oracle Managed Files

Choosing Data Block Size

Reads

Writes

Block Size Advantages and Disadvantages

I/O Calibration Inside the Database

Prerequisites for I/O Calibration.

Running I/O Calibration

I/O Calibration with the Oracle Orion Calibration Tool

Introduction to the Oracle Orion Calibration Tool.

Orion Test Targets

Orion for Oracle Administrators.

Getting Started with Orion

Orion Input Files.

Orion Parameters.

Orion Required Parameter

Orion Optional Parameters.

Orion Command Line Samples.

Orion Output Files

Orion Sample Output Files

Orion Troubleshooting

18 Managing Operating System Resources

Understanding Operating System Performance Issues

Using Operating System Caches.

Asynchronous I/O

FILESYSTEMIO_OPTIONS Initialization Parameter

Limiting Asynchronous I/O in NFS Server Environments.

Memory Usage.

Buffer Cache Limits.

Parameters Affecting Memory Usage.

Using Operating System Resource Managers.

Resolving Operating System Issues

Performance Hints on UNIX-Based Systems.

Performance Hints on Windows Systems

Performance Hints on HP OpenVMS Systems

Understanding CPU

Resolving CPU Issues

Finding and Tuning CPU Utilization.

Checking Memory Management.

Paging and Swapping .

Oversize Page Tables .

Checking I/O Management.

Checking Network Management.

Checking Process Management.

Scheduling and Switching .

Context Switching .

Starting New Operating System Processes.

Managing CPU Resources Using Oracle Database Resource Manager

Managing CPU Resources Using Instance Caging