dba’s new best friend: oracle database 10g and 11g sql performance analyzer

44
DBA’s New Best Friend: Oracle Database 10g and 11g SQL Performance Analyzer Kurt Engeleiter Product Manager Database Manageability

Upload: chip

Post on 05-Jan-2016

51 views

Category:

Documents


0 download

DESCRIPTION

DBA’s New Best Friend: Oracle Database 10g and 11g SQL Performance Analyzer. Kurt Engeleiter Product Manager Database Manageability. Outline. SQL Performance Analyzer (SPA) – Introduction Recommended Testing Methodology Usage Scenarios Evaluating Changes on Production System - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: DBA’s New Best Friend: Oracle Database 10g and 11g SQL Performance Analyzer

DBA’s New Best Friend: Oracle Database 10g and 11g SQL Performance AnalyzerKurt EngeleiterProduct ManagerDatabase Manageability

Page 2: DBA’s New Best Friend: Oracle Database 10g and 11g SQL Performance Analyzer

Outline

• SQL Performance Analyzer (SPA) – Introduction• Recommended Testing Methodology• Usage Scenarios– Evaluating Changes on Production System– 10.2 11g DB Upgrade

• SPA Enhancements in Oracle Database 11g Release 2• SPA Exadata Simulation• Conclusion

Page 3: DBA’s New Best Friend: Oracle Database 10g and 11g SQL Performance Analyzer

SPA Motivation

• Businesses need to adapt to changes to stay competitive, compliant and evolve– DB upgrades, schema, optimizer statistics refresh– SQL performance regressions: #1 cause of poor system perf.

• Current testing landscape and limitations– Expensive capture, partial workload, non-production optimizer context,

binds– Large workloads (100Ks SQL stmts are common)– Manual and time consuming testing and regression tuning– No end-to-end testing solution – Test In Production is not too uncommon

SQL Performance Analyzer (SPA) Proactively detects ALL SQL regressions, BEFORE actual change is deployed Integrated comprehensive solution for end-to-end SQL workload testing

Page 4: DBA’s New Best Friend: Oracle Database 10g and 11g SQL Performance Analyzer

SPA Overview

• Helps users predict the impact of system changes on SQL workload response time

• Low overhead capture of SQL workload to SQL Tuning Set (STS) on production system

• Build different SQL trials (experiments) of SQL statements performance by test execution

• Analyzes performance differences

• Offers fine-grained performance analysis on individual SQL

• Integrated with STS, SQL Plan Baselines, & SQL Tuning Advisor to form an end-to-end solution

Analysis Report

Compare

SQL Performance

SQL plans + stats SQL plans + stats

Pre-change Trial Post-change Trial

SQL Workload

STS

Page 5: DBA’s New Best Friend: Oracle Database 10g and 11g SQL Performance Analyzer

SQL Trials

• SQL Trials capture execution performance (plans and statistics) of the STS under a given environment

• SPA Trials handle the SELECTS and query part of DML, DDL is skipped

• There are 3 methods to build SQL Trials:

– Execute SQL Locally or Remotely• Test execute statements in actual environment• For remote execution, database link needs to be specified

– Generate Plans Locally or Remotely• Generated execution plans have bind visibility, so better than vanilla “explain”• Quick way to check if wide-spread changes to SQL plans

– Build from STS • Convert STS to SQL Trial• Use for SQL centric analysis with DB Replay or other testing tools• Use for 9i/10.1 upgrade to higher releases

Page 6: DBA’s New Best Friend: Oracle Database 10g and 11g SQL Performance Analyzer

SPA: Common Usage Scenarios

• Database upgrades and patch-set releases– 9.2/10.1 10.2 or 11g releases– 10.2.0.x 10.2.0.y or 11g releases

• Optimizer statistics refresh• Database parameter changes• Database schema changes (e.g., add/drop indexes)• Implementation of tuning recommendations• I/O subsystem changes (e.g., ASM, Exadata)

SPA can be used for: any change that affects SQL execution plan & performance in production as well as test environments

Information for use cases on OTN/ML Note: 560977.1

Page 7: DBA’s New Best Friend: Oracle Database 10g and 11g SQL Performance Analyzer

SPA: Enterprise Manager Interface

• Rich GUI through Enterprise Manager – New workflows added!

• DBMS_SQLPA package PL/SQL API

New Workflows

!

Page 8: DBA’s New Best Friend: Oracle Database 10g and 11g SQL Performance Analyzer

Recommended Testing Methodology

Page 9: DBA’s New Best Friend: Oracle Database 10g and 11g SQL Performance Analyzer

Real Application Testing: Recommended Methodology

2. USE DB REPLAY FOR LOAD / CONCURRENCY TESTING

DONE?

No

DEPLOY CHANGE & TUNING

Yes

Yes

No

DONE?

1. USE SPA FOR SQL RESPONSE TIME / UNIT TESTING

Page 10: DBA’s New Best Friend: Oracle Database 10g and 11g SQL Performance Analyzer

Recommended Testing Methodology with SPA

1. CAPTURE REPRESENTATIVE SQL WORKLOAD TO STS

3. MAKE CHANGE, ESTABLISH SQL TRIAL-N

2. ESTABLISH BASELINE (SQL TRIAL-1) WITHOUT CHANGE

4. COMPARE TRIALS & REVIEW SPA REPORT, REMEDIATE

• Reports show deviations from production

NoYes

5. Deploy Change & Tuning to PROD OR

further testing thru DB Replay

• Compare Baseline to Trial-N in the same environment

• For incremental tuning: Compare Trial N-1 to Trial-N

• Test one change at a time to understand causality

DONE?

• Use Production or identical Test System

Page 11: DBA’s New Best Friend: Oracle Database 10g and 11g SQL Performance Analyzer

Usage Scenario: Evaluating Changes On Production

Page 12: DBA’s New Best Friend: Oracle Database 10g and 11g SQL Performance Analyzer

+Parameter

Change

1. Fix Regression thru SPM

+Add

indexes

Using SPA For Changes in Production: Example

Fix Regression SQL Profile

Prod

+SQL

Profile

+New Stats

Change

+Partitioning

+Validate

Tuning

Parameter change was bad in this case

And so on…

+Index

Unusable

• Bubble following the arrow indicates the delta change on Production

• SPA is used for testing every change

Page 13: DBA’s New Best Friend: Oracle Database 10g and 11g SQL Performance Analyzer

How to Minimize Impact on Production?

• Generate Plan Vs Test Execute– Use Generate Plan Trial Method to subset SQL with plan changes– Only test execute SQL with plan changes

• Limit testing scope to private session or schema where possible– Use alter session set <parameter> = <value>; (Vs system)– Example usage for SQL Profiles:• alter session set sqltune_category= ‘TEST’;

– Implement SQL Profiles and test Only sessions with “TEST” sqltune_category see these Profiles - private scope!!

• alter session set sqltune_category= ‘DEFAULT’; -- Now SQL Profiles visible globally to all sessions

• Similarly for Invisible Indexes, Pending Stats

• Use SPA time limit to control resource usage

• Test during maintenance window or non-peak activity when spare resources are available

Page 14: DBA’s New Best Friend: Oracle Database 10g and 11g SQL Performance Analyzer

Using SPA on Production: Evaluating Optimizer Statistics Refresh and other changes

Scenario:

Can I use SPA to check if any SQL statements regressed due to optimizer statistics refresh on my 10.2/11g production databases? If so, how?

Goal:

Assess impact of optimizer statistics gathering on SQL workload performance on production system using SPA & make sure are no negative effects of the change

Page 15: DBA’s New Best Friend: Oracle Database 10g and 11g SQL Performance Analyzer

Evaluating Optimizer Statistics Refresh

• Assumptions– Statistics refreshed periodically through custom jobs– No test system available, so evaluation is done on production– Should impact end-users minimally– Test using optimizer pending statistics feature

• Use SPA remote trials capability (generate plan and test execute) to evaluate statistics refresh on 10.2/11g production database

• Analyze SPA report and take appropriate action– Overall improvement but few SQL regressions

• Solution: Use SQL Profiles or Plan Management – No improvement and many regressions

• Solution: Revert to old statistics: Use optimizer statistics retention/history feature. Alternatively, configure optimizer statistics appropriately*

– For Oracle Database 11g, “publish pending” statistics after evaluation of statistics

OBE Tutorial on OTN: Gathering and Publishing Stats Independently

Page 16: DBA’s New Best Friend: Oracle Database 10g and 11g SQL Performance Analyzer

Using SPA on Production: Evaluating Optimizer Statistics Refresh

Production Database (10.2/11g)

11g SPA System

1. Capture SQL workload to STS

Prod: Before Stats

Prod: Stats Refreshed

Evaluate Opt Statistics Refresh

5. Publish Pending Stats and Remediate Regressions

Remotely Build SQL Trials

No Test Database Used!!

3. Gather Pending Stats

2. Import STS

4.Use SPA to detect performance changes

• No app schema/data necessary

• Not Mandatory for 11g db

• Repository for many tests!

Page 17: DBA’s New Best Friend: Oracle Database 10g and 11g SQL Performance Analyzer

Usage Scenario: End-to-End Case Study for 10.2 11g

Upgrade

Page 18: DBA’s New Best Friend: Oracle Database 10g and 11g SQL Performance Analyzer

10.2 11g DB Upgrade Using Enterprise Manager Grid Control (EMGC) 10.2.0.5

Scenario:

I want to upgrade from 10.2 to 11g database release to benefit from 11g functionality. How can I best accomplish the upgrade?

Goal:

Assess impact of upgrade on SQL workload performance using SPA so that there are no surprises after upgrade. Once migrated to 11g new features can be enabled one at a time. Use EMGC 10.2.0.5 for this purpose…

Page 19: DBA’s New Best Friend: Oracle Database 10g and 11g SQL Performance Analyzer

10.2 11g DB Upgrade

Production Database

11g SPA System

1. Capture SQL workload to STS

Upgrade

Test Database

Test DB (11g)

Upgrade

Test DB (10.2)

Collect execution stats

3. Establish 10.2 and 11g Trials

4. Compare performance and generate SPA report

Send SQL for Remote Execution

Prod DB (10.2)

2. Transport STS

5. Deploy Tuning and Change to Prod

Page 20: DBA’s New Best Friend: Oracle Database 10g and 11g SQL Performance Analyzer

10.2 11g DB Upgrade (1) Capture Workload to STS

Steps 1: Capture workload into STS through Incremental Capture Workload into STS: Preferred method Other sources for STS also possible: Top SQL in AWR / AWR Baseline

Page 21: DBA’s New Best Friend: Oracle Database 10g and 11g SQL Performance Analyzer

10.2 11g DB Upgrade (1) Capture Workload to STS

Page 22: DBA’s New Best Friend: Oracle Database 10g and 11g SQL Performance Analyzer

10.2 11g Upgrade

1. Capture SQL workload to STS

3. Establish 10.2 and 11g Trials

2. Transport STS

4. Compare performance and Generate SPA report

5. Deploy Tuning and Change to Prod

Page 23: DBA’s New Best Friend: Oracle Database 10g and 11g SQL Performance Analyzer

Step 2:• Copy STS to SPA system• Setup Test DB (Copy of Prod) – 10.2• Upgrade Test DB from 10.2 to 11g

10.2 11g DB Upgrade (2) Transport STS

Page 24: DBA’s New Best Friend: Oracle Database 10g and 11g SQL Performance Analyzer

10.2 11g DB Upgrade

1. Capture SQL workload to STS

3. Establish 10.2 and 11g Trials

2. Transport STS

4. Compare performance and Generate SPA report

5. Deploy Tuning and Change to Prod

Page 25: DBA’s New Best Friend: Oracle Database 10g and 11g SQL Performance Analyzer

10.2 11g DB Upgrade (3) Establish 10.2 and 11g Trials

Page 26: DBA’s New Best Friend: Oracle Database 10g and 11g SQL Performance Analyzer

10.2 11g Upgrade

1. Capture SQL workload to STS

3. Establish 10.2 and 11g Trials

2. Transport STS

4. Compare Performance, Generate SPA Report

5. Tune Regressions, Deploy Tuning and Change to Prod

Page 27: DBA’s New Best Friend: Oracle Database 10g and 11g SQL Performance Analyzer

10.2 11g DB Upgrade (4) Compare Performance and Generate Report

4

1

3

2

5*

Note tuning/regression fix is done on remote test system that is being

upgraded

Page 28: DBA’s New Best Friend: Oracle Database 10g and 11g SQL Performance Analyzer

SPA Report Regressed SQL Statements

Page 29: DBA’s New Best Friend: Oracle Database 10g and 11g SQL Performance Analyzer

10.2 11g Upgrade

1. Capture SQL workload to STS

3. Establish 10.2 and 11g Trials

2. Transport STS

4. Compare performance and Generate SPA report

5. Tune Regressions, Deploy Tuning and Change to Prod

Page 30: DBA’s New Best Friend: Oracle Database 10g and 11g SQL Performance Analyzer

10.2 11g DB Upgrade (5) Regression Remediation

• If SPA system has application data/schema, tuning can be done locally on the same DB

• If a separate SPA system is used, manually* subset SQL into a separate STS and then use EM to transport it to remote DB

• Create SQL Plan Baselines: Helps revert to previously known, stable plans

• SQL Tuning Advisor: Helps explore better execution plans

• All regressed SQL are targeted automatically for remediation

* Code snippet in Real Application Testing Users Guide (11.2), Chapter 11 Page 23

Page 31: DBA’s New Best Friend: Oracle Database 10g and 11g SQL Performance Analyzer

10.2 11g DB Upgrade (5) Regression Remediation

Page 32: DBA’s New Best Friend: Oracle Database 10g and 11g SQL Performance Analyzer

10.2 11g DB Upgrade(5) Deploy Tuning and Change in Production

Page 33: DBA’s New Best Friend: Oracle Database 10g and 11g SQL Performance Analyzer

10.2 11g Upgrade

1. Capture SQL workload to STS

3. Establish 10.2 and 11g Trials

2. Transport STS

4. Compare performance and Generate SPA report

5. Tune Regressions, Deploy Tuning and Change to Prod

Page 34: DBA’s New Best Friend: Oracle Database 10g and 11g SQL Performance Analyzer

SPA

Demo

Page 35: DBA’s New Best Friend: Oracle Database 10g and 11g SQL Performance Analyzer

SPA Enhancements in Oracle Database 11g Release 2

Page 36: DBA’s New Best Friend: Oracle Database 10g and 11g SQL Performance Analyzer

SPA Enhancements: Oracle Database 11g Release 2

• Multiple test executes for better trial accuracy – first execution ignored, averaged stats

• Alternate Plans: New recommendation added for regression remediation– If a better execution plan was noticed in AWR or baseline SQL Trial then

a SQL Plan Baseline can be created from it

• Active Reports– New interactive, offline reports based on Adobe Flash Player UI– Customers can share reports internally or with Oracle Support• Save, email, View Reports• Support can diagnose problems more efficiently• Get EM UI without installing EM – useful for packaged apps and

internal development teams– SPA Active Report Example

Page 37: DBA’s New Best Friend: Oracle Database 10g and 11g SQL Performance Analyzer

SPA Exadata Simulation: Estimating Exadata Server Performance Gains

Page 38: DBA’s New Best Friend: Oracle Database 10g and 11g SQL Performance Analyzer

Predicting performance gains with SPA

• Existing SPA and Database Replay functionality can be used to compare non-Exadata to Exadata configurations – SPA: Unit test to find SQL response time gains– DB Replay: Stress test with concurrency to find throughput gains– Measure improvements for your workload– This approach requires you to provision Exadata HW

• Oracle Database Release 11.1.0.7: Adds SPA functionality to simulate Exadata on existing hardware to predict gains

• Oracle Database Release 11.2: Adds SPA GUI support

• Simulation measures reduction in I/O interconnect usage that will in turn, reduce IO and CPU consumed on the DB server

Page 39: DBA’s New Best Friend: Oracle Database 10g and 11g SQL Performance Analyzer

SPA Exadata SimulationWorkflow

• SPA Exadata Simulation builds two SQL Trials:• Trial 1: Current configuration with No Exadata• Trial 2: Current configuration with Exadata simulation

• Comparison metric – I/O Interconnect Bytes– Trial 1 value = I/O Interconnect (disk) bytes– Trial 2 value is reduced depending on SQL operation

eligibility (for full table scans, index full scans, etc.)– Plans will not change between trials

Page 40: DBA’s New Best Friend: Oracle Database 10g and 11g SQL Performance Analyzer

SPA Exadata Simulation Workflow

Page 41: DBA’s New Best Friend: Oracle Database 10g and 11g SQL Performance Analyzer

SPA Exadata Simulation: Report

Page 42: DBA’s New Best Friend: Oracle Database 10g and 11g SQL Performance Analyzer

SPA Report: SQL Details

Page 43: DBA’s New Best Friend: Oracle Database 10g and 11g SQL Performance Analyzer

Conclusion

• SPA provides comprehensive and easy-to-use solution for SQL workload testing

• SPA can be used for many changes both test and production environments

• Helps adopt technology faster by significantly cutting down testing costs and production deployment risk

• With SPA and Real Application Testing businesses can be stay competitive and improve profitability

Page 44: DBA’s New Best Friend: Oracle Database 10g and 11g SQL Performance Analyzer

Important Resources

Oracle Database Manageabilityhttp://www.oracle.com/technology/products/manageability/database/index.html

Oracle Database 2-Day DBA Guidehttp://download.oracle.com/docs/cd/E11882_01/server.112/e10897/toc.htm

Oracle Real Application Testing User’s Guidehttp://download.oracle.com/docs/cd/E11882_01/server.112/e12254/toc.htm

SPA Active Reportshttp://www.oracle.com/technology/products/manageability/database/sqlpa.html