Oracle Database 11 g Performance Tuning. Recipes. Sam R. Alapati Darl Kuhn Bill Padfield. Apress*



Similar documents
Oracle Database 11g: SQL Tuning Workshop Release 2

Oracle Database 11g: SQL Tuning Workshop

Oracle. Brief Course Content This course can be done in modular form as per the detail below. ORA-1 Oracle Database 10g: SQL 4 Weeks 4000/-

Oracle Database 12c: Performance Management and Tuning NEW

Programa de Actualización Profesional ACTI Oracle Database 11g: SQL Tuning Workshop

ORACLE DATABASE 11G: COMPLETE

1. This lesson introduces the Performance Tuning course objectives and agenda

Oracle Database 11g: Performance Tuning DBA Release 2

Introduction. Part I: Finding Bottlenecks when Something s Wrong. Chapter 1: Performance Tuning 3

Oracle EXAM - 1Z Oracle Database 11g Release 2: SQL Tuning. Buy Full Product.

Oracle 11g Database Administration

1Z0-117 Oracle Database 11g Release 2: SQL Tuning. Oracle

Expert Oracle. Database Architecture. Techniques and Solutions. 10gr, and 11g Programming. Oracle Database 9/, Second Edition.

Basic Tuning Tools Monitoring tools overview Enterprise Manager V$ Views, Statistics and Metrics Wait Events

Oracle DBA Course Contents

COURCE TITLE DURATION. Oracle Database 11g: Administration Workshop I

Objectif. Participant. Prérequis. Pédagogie. Oracle Database 11g - Performance Tuning DBA Release 2. 5 Jours [35 Heures]

Oracle Database 10g: Administration Workshop II Release 2

Oracle Database: SQL and PL/SQL Fundamentals NEW

Oracle Database 10g: New Features for Administrators

Oracle Database 11g: Administration Workshop I Release 2

ORACLE DATABASE: ADMINISTRATION WORKSHOP I

Oracle Database 11g: Administration Workshop II DBA Release 2

Expert Oracle Exadata

Oracle Database 12c: Administration Workshop NEW

UNIVERSITY AUTHORISED EDUCATION PARTNER (WDP)

Oracle Database 11g: Administration Workshop I Release 2

AV-004: Administering and Programming with ORACLE

Oracle Database 11g: New Features for Administrators DBA Release 2

Oracle Database 11g: Administration Workshop II Release 2

Objectif. Participant. Prérequis. Pédagogie. Oracle Database 11g - Administration Workshop I Release 2. 5 Jours [35 Heures]

Introduction to SQL Tuning. 1. Introduction to SQL Tuning SkillBuilders, Inc. SKILLBUILDERS

Oracle Database 12c: Administration Workshop NEW. Duration: 5 Days. What you will learn

Oracle Database 11g: Administration Workshop I

Optimizing Your Database Performance the Easy Way

Oracle Database 11g: Administration Workshop II DBA Release 2

Advanced Oracle SQL Tuning

System Administration of Windchill 10.2

Oracle Database 12c: Admin, Install and Upgrade Accelerated

SQL Databases Course. by Applied Technology Research Center. This course provides training for MySQL, Oracle, SQL Server and PostgreSQL databases.

D12C-AIU Oracle Database 12c: Admin, Install and Upgrade Accelerated NEW

MOC 20462C: Administering Microsoft SQL Server Databases

Configuring Backup Settings Configuring and Managing Persistent Settings for RMAN Configuring Autobackup of Control File Backup optimization

Module 15: Monitoring

Oracle Architecture, Concepts & Facilities

Expert Oracle Exadata

Customer evaluation guide Toad for Oracle v12 Database administration

Oracle Enterprise Manager 12c New Capabilities for the DBA. Charlie Garry, Director, Product Management Oracle Server Technologies

Oracle Database 11g: Administration And Backup & Recover

Oracle 11g New Features - OCP Upgrade Exam

Oracle Database 12c: Performance Management and Tuning NEW

Microsoft SQL Server: MS Performance Tuning and Optimization Digital

SQL Server Performance Tuning and Optimization

MS SQL Performance (Tuning) Best Practices:

Oracle Database 12c: New Features for Administrators

Objectif. Participant. Prérequis. Pédagogie. Oracle Database 11g - New Features for Administrators Release 2. 5 Jours [35 Heures]

Oracle Database 10g. Page # The Self-Managing Database. Agenda. Benoit Dageville Oracle Corporation benoit.dageville@oracle.com

Monitoring PostgreSQL database with Verax NMS

PERFORMANCE TUNING FOR PEOPLESOFT APPLICATIONS

Objectif. Participant. Prérequis. Pédagogie. Oracle Database 11g - Administration Workshop II - LVC. 5 Jours [35 Heures]

W I S E. SQL Server 2008/2008 R2 Advanced DBA Performance & WISE LTD.

ORACLE INSTANCE ARCHITECTURE

Topics Advanced PL/SQL, Integration with PROIV SuperLayer and use within Glovia

Oracle Database 11g: Administration Workshop II

news from Tom Bacon about Monday's lecture

StreamServe Persuasion SP5 Oracle Database

Oracle Database 12c: SQL Tuning for Developers. Sobre o curso. Destinatários. Oracle - Linguagens. Nível: Avançado Duração: 18h

Oracle Database 11g: New Features for Administrators

DBA Best Practices: A Primer on Managing Oracle Databases. Leng Leng Tan Vice President, Systems and Applications Management

MyOra 3.0. User Guide. SQL Tool for Oracle. Jayam Systems, LLC

Oracle Database. Performance. and Scalability. A Quantitative Approach. Henry H. Liu. as Computer SOCIETY A JOHN WILEY & SONS, INC.

Oracle 11g DBA Training Course Content

ORACLE DATABASE 12C: NEW FEATURES FOR ADMINISTRATORS GRADE CURRICULAR. Enterprise Manager Express home page versus Enterprise Manager Database Control

Proactive Performance Monitoring Using Metric Extensions and SPA

D12CBR Oracle Database 12c: Backup and Recovery Workshop NEW

Keep It Simple - Common, Overlooked Performance Tuning Tips. Paul Jackson Hotsos

ORACLE DATABASE ADMINISTRATOR RESUME

Optimizing the Performance of the Oracle BI Applications using Oracle Datawarehousing Features and Oracle DAC

MyOra 3.5. User Guide. SQL Tool for Oracle. Kris Murthy

Oracle 10g PL/SQL Training

Performance Tuning and Optimizing SQL Databases 2016

Contents at a Glance. Contents... v About the Authors... xiii About the Technical Reviewer... xiv Acknowledgments... xv

Oracle Architecture. Overview

50238: Introduction to SQL Server 2008 Administration

D61830GC30. MySQL for Developers. Summary. Introduction. Prerequisites. At Course completion After completing this course, students will be able to:

Safe Harbor Statement

Top 10 Performance Tips for OBI-EE

PERFORMANCE TIPS FOR BATCH JOBS

SQL Server 2012 Optimization, Performance Tuning and Troubleshooting

Automatic Data Optimization

6231B: Maintaining a Microsoft SQL Server 2008 R2 Database

EMC Unisphere for VMAX Database Storage Analyzer

SQL Server 2008 Designing, Optimizing, and Maintaining a Database Session 1

SQL Server. DMVs in Action. Better Queries with. Dynamic Management Views MANNING IANW. STIRK. Shelter Island

MOC Administering Microsoft SQL Server 2014 Databases

ORACLE DBA 11G TRAINING

SQL Server 2012 Query. Performance Tuning. Grant Fritchey. Apress*

About the Author About the Technical Contributors About the Technical Reviewers Acknowledgments. How to Use This Book

Transcription:

Oracle Database 11 g Performance Tuning Recipes Sam R. Alapati Darl Kuhn Bill Padfield Apress*

Contents About the Authors About the Technical Reviewer Acknowledgments xvi xvii xviii Chapter 1: Optimizing Table Performance 1 1-1. Building a Database That Maximizes Performance 2 1-2. Creating Tablespaces to Maximize Performance 5 1-3. Matching Table Types to Business Requirements 8 1-4. Choosing Table Features for Performance 9 1-5. Avoiding Extent Allocation Delays When Creating Tables 12 1-6. Maximizing Data Loading Speeds 14 1-7. Efficiently Removing Table Data 17 1-8. Displaying Automated Segment Advisor Advice 19 1-9. Manually Generating Segment Advisor Advice 23 1-10. Automatically E-mailing Segment Advisor Output 27 1-11. Rebuilding Rows Spanning Multiple Blocks 28 1-12. Freeing Unused Table Space 32 1-13. Compressing Data for Direct Path Loading 33 1-14. Compressing Data for All DML 36 1-15. Compressing Data at the Column Level 38 1-16. Monitoring Table Usage 40

. Chapter IB CONTENTS 2: Choosing and Optimizing Indexes...,. 43 2-1. Understanding B-tree Indexes 45 2-2. Deciding Which Columns to Index 51 2-3. Creating a Primary Key Index 54 2-4. Creating a Unique Index 56 2-5. Indexing Foreign Key Columns 59 2-6. Deciding When to Use a Concatenated Index 60 2-7. Reducing Index Size Through Compression 63 2-8. Implementing a Function-Based Index 64 2-9. Indexing a Virtual Column 67 2-10. Avoiding Concentrated I/O for Index 68 2-11. Adding an Index Without Impacting Existing Applications 70 2-12. Creating a Bitmap Index in Support of a Star Schema 72 2-13. Creating a Bitmap Join Index 73 2-14. Creating an Index-Organized Table 74 2-15. Monitoring Index Usage 75 2-16. Maximizing Index Creation Speed 77 2-17. Reclaiming Unused Index Space 78 Chapter 3: Optimizing Instance Memory 83 3-1. Automating Memory Management 83 3-2. Managing Multiple Buffer Pools 87 3-3. Setting Minimum Values for Memory 89 3-4. Monitoring Memory Resizing Operations 90 3-5. Optimizing Memory Usage 91 3-6. Tuning PGA Memory Allocation 93 3-7. Configuring the Server Query Cache 95

mcontents 3-8. Managing the Server Result Cache 97 3-9. Caching SQL Query Results 99 3-10. Caching Client Result Sets 103 3-11. Caching PL/SQL Function Results 105 3-12. Configuring the Oracle Database Smart Flash Cache 109 3-13. Tuning the Redo Log Buffer 110 Chapter 4: Monitoring System Performance 113 4-1. Implementing Automatic Workload Repository (AWR) 113 4-2. Modifying the Statistics Interval and Retention Periods 116 4-3. Generating an AWR Report Manually 117 4-4. Generating an AWR Report via Enterprise Manager 120 4-5. Generating an AWR Report for a Single SQL Statement 121 4-6. Creating a Statistical Baseline for Your Database 123 4-7. Managing AWR Baselines via Enterprise Manager 126 4-8. Managing AWR Statistics Repository 129 4-9. Creating AWR Baselines Automatically 131 4-10. Quickly Analyzing AWR Output 133 4-11. Manually Getting Active Session Information 134 4-12. Getting ASH Information from Enterprise Manager 140 4-13. Getting ASH Information from the Data Dictionary 142 Chapter 5: Minimizing System Contention 147 5-1. Understanding Response Time 147 5-2. Identifying SQL Statements with the Most Waits 150 5-3. Analyzing Wait Events 151 5-4. Understanding Wait Class Events 152 5-5. Examining Session Waits 153

CONTENTS 5-6. Examining Wait Events by Class 154 5-7. Resolving Buffer Busy Waits 157 5-8. Resolving Log File Sync Waits 158 5-9. Minimizing read by other session Wait Events 160 5-10. Reducing Direct Path Read Wait Events 161 5-11. Minimizing Recovery Writer Waits 162 5-12. Finding Out Who's Holding a Blocking Lock 163 5-13. Identifying Blocked and Blocking Sessions 165 5-14. Dealing with a Blocking Lock 167 5-15. Identifying a Locked Object 168 5-16. Resolving enq: TM Lock Contention 169 5-17. Identifying Recently Locked Sessions 171 5-18. Analyzing Recent Wait Events in a Database 174 5-19. Identifying Time Spent Waiting Due to Locking 175 5-20. Minimizing Latch Contention 178 5-21. Managing Locks from Oracle Enterprise Manager 181 5-22. Analyzing Waits from Oracle Enterprise Manager 182 Chapter 6: Analyzing Operating System Performance 185 6-1. Detecting Disk Space Issues 187 6-2. Identifying System Bottlenecks (vmstat) 190 6-3. Identifying System Bottlenecks (Solaris) 192 6-4. Identifying Top Server-Consuming Resources (top) 194 6-5. Identifying CPU and Memory Bottlenecks (ps) 197 6-6. Identifying I/O Bottlenecks 198 6-7. Identifying Network-Intensive Processes 201 6-8. Troubleshooting Database Network Connectivity 202 viii

:> CONTENTS 6-9. Mapping a Resource-Intensive Process to a Database Process 204 6-10. Terminating a Resource-Intensive Process 207 Chapter 7: Troubleshooting the Database 209 7-1. Determining the Optimal Undo Retention Period 209 7-2. Finding What's Consuming the Most Undo 213 7-3. Resolving an ORA-01555 Error 215 7-4. Monitoring Temporary Tablespace Usage 217 7-5. Identifying Who Is Using the Temporary Tablespace 218 7-6. Resolving the "Unable to Extend Temp Segment" Error 220 7-7. Resolving Open Cursor Errors 222 7-8. Resolving a Hung Database 224 7-9. Invoking the Automatic Diagnostic Repository Command Interpreter 229 7-10. Viewing an Alert Log from ADRCI 233 7-11. Viewing Incidents with ADRCI 235 7-12. Packaging Incidents for Oracle Support 236 7-13. Running a Database Health Check 238 7-14. Creating a SQL Test Case 240 7-15. Generating an AWR Report 243 7-16. Comparing Database Performance Between Two Periods 246 7-17. Analyzing an AWR Report 248 Chapter 8: Creating Efficient SQL 253 8-1. Retrieving All Rows from a Table 254 8-2. Retrieve a Subset of Rows from a Table 256 8-3. Joining Tables with Corresponding Rows 258 8-4. Joining Tables When Corresponding Rows May Be Missing 259 8-5. Constructing Simple Subqueries 263

% CONTENTS 8-6. Constructing Correlated Subqueries 267 8-7. Comparing Two Tables to Finding Missing Rows 269 8-8. Comparing Two Tables to Finding Matching Rows 271 8-9. Combining Results from Similar SELECT Statements 271 8-10. Searching for a Range of Values 274 8-11. Handling Null Values 277 8-12. Searching for Partial Column Values 280 8-13. Re-using SQL Statements Within the Shared Pool 284 8-14. Avoiding Accidental Full Table Scans 288 8-15. Creating Efficient Temporary Views 290 8-16. Avoiding the NOT Clause 293 8-17. Controlling Transaction Sizes 295 IChapter 9: Manually Tuning SQL 299 9-1. Displaying an Execution Plan for a Query 300 9-2. Customizing Execution Plan Output 302 9-3. Graphically Displaying an Execution Plan 306 9-4. Reading an Execution Plan 307 9-5. Monitoring Long-Running SQL Statements 310 9-6. Identifying Resource-Consuming SQL Statements That Are Currently Executing 311 9-7. Seeing Execution Statistics for Currently Running SQL..312 9-8. Monitoring Progress of a SQL Execution Plan 316 9-9. Identifying Resource-Consuming SQL Statements That Have Executed in the Past 319 9-10. Comparing SQL Performance After a System Change 321 X

= COMTENTS IlChapter 10: Tracing SQL Execution 327 10-1. Preparing Your Environment 327 10-2. Tracing a Specific SQL Statement 330 10.3. Enabling Tracing in Your Own Session 332 10-4. Finding the Trace Files 332 10-5. Examining a Raw SQL Trace File 334 10-6. Analyzing Oracle Trace Files 335 10-7. Formatting Trace Files with TKPROF 336 10-8. Analyzing TKPROF Output 337 10-9. Analyzing Trace Files with Oracle Trace Analyzer 340 10-10. Tracing a Parallel Query 343 10-11. Tracing Specific Parallel Query Processes... 345 10-12. Tracing Parallel Queries in a RAC System 346 10-13. Consolidating Multiple Trace Files 347 10-14. Finding the Correct Session for Tracing 348 10-15. Tracing a SQL Session 349 10-16. Tracing a Session by Process ID 351 10-17. Tracing Multiple Sessions 352 10-18. Tracing an Instance or a Database 353 10-19. Generating an Event 10046 Trace for a Session 354 10-20. Generating an Event 10046 Trace for an Instance 356 10-21. Setting a Trace in a Running Session 356 10-22. Enabling Tracing in a Session After a Login 357 10-23. Tracing the Optimizer's Execution Path 358 10-24. Generating Automatic Oracle Error Traces 361 10-25. Tracing a Background Process 362

CONTENTS 10-26. Enabling Oracle Listener Tracing 363 10-27. Setting Archive Tracing for Data Guard 365 Chapter 11: Automated SQL Tuning 367 11-1. Displaying Automatic SQL Tuning Job Details 370 11-2. Displaying Automatic SQL Tuning Advice 372 11-3. Generating a SQL Script to Implement Automatic Tuning Advice 376 11-4. Modifying Automatic SQL Tuning Features 377 11-5. Disabling and Enabling Automatic SQL Tuning 380 11-6. Modifying Maintenance Window Attributes 381 11-7. Creating a SQL Tuning Set Object 383 11-8. Viewing Resource-Intensive SQL in the AWR 384 11-9. Viewing Resource-Intensive SQL in Memory 386 11-10. Populating SQL Tuning Set from High-Resource SQL in AWR 388 11-11. Populating a SQL Tuning Set from Resource-Consuming SQL in Memory 390 11-12. Populating SQL Tuning Set with All SQL in Memory 391 11-13. Displaying the Contents of a SQL Tuning Set 393 11-14. Selectively Deleting Statements from a SQL Tuning Set 394 11-15. Transporting a SQL Tuning Set 396 11-16. Creating a Tuning Task 398 11-17. Manually Running SQL Tuning Advisor 401 11-18. Getting SQL Tuning Advice from the Automatic Database Diagnostic Monitor..404 Chapter 12: Execution Plan Optimization and Consistency 409 12-1. Creating and Accepting a SQL Profile 413 12-2. Automatically Accepting SQL Profiles 417 12-3. Displaying SQL Profile Information 419 12-4. Disabling a SQL Profile 421 xii

S CONTENTS 12-5. Dropping a SQL Profile 423 12-6. Moving a SQL Profile 424 12-7. Automatically Adding Plan Baselines 426 12-8. Creating a Plan Baseline for One SQL Statement 428 12-9. Creating Plan Baselines for SQL Contained in SQL Tuning Set 431 12-10. Altering a Plan Baseline 433 12-11. Determining If Plan Baselines Exist 436 12-12. Displaying Plan Baseline Execution Plans 437 12-13. Adding a New Plan to Plan Baseline (Evolving) 439 12-14. Disabling Plan Baselines 442 12-15. Removing Plan Baseline Information 443 12-16. Transporting Plan Baselines 444 Chapter 13: Configuring the Optimizer.447 13-1. Choosing an Optimizer Goal 447 13-2. Enabling Automatic Statistics Gathering 448 13-3. Setting 13-4. Manually Generating Preferences for Statistics Collection 451 Statistics 456 13-5. Locking Statistics 458 13-6. Handling Missing Statistics 459 13-7. Exporting Statistics 460 13-8. Restoring Previous Versions of Statistics 462 13-9. Gathering System Statistics 463 13-10. Validating New Statistics 466 13-11. Forcing the Optimizer to Use an Index 468 13-12. Enabling Query Optimizer Features. 470 13-13. Keeping the Database from Creating Histograms 472

CONTENTS 13-14. Improving Performance When Not Using Bind Variables 473 13-15. Understanding Adaptive Cursor Sharing 476 13-16. Creating Statistics on Expressions 482 13-17. Creating Statistics for Related Columns 483 13-18. Automatically Creating Column Groups 484 13-19. Maintaining Statistics on Partitioned Tables 486 13-20. Concurrent Statistics Collection for Large Tables 488 Chapter 14: Implementing Query Hints 491 14-1. Writing a Hint 491 14-2. Changing the Access Path 493 14-3. Changing the Join Order 497 14-4. Changing the Join Method 498 14-5. Changing the Optimizer Version 501 14-6. Choosing Between a Fast Response and Overall Optimization 502 14-7. Performing a Direct-Path Insert 505 14-8. Placing Hints in Views 506 14-9. Caching Query Results 509 14-10. Directing a Distributed Query to a Specific Database 513 14-11. Gathering Extended Query Execution Statistics 517 14-12. Enabling Query Rewrite 519 14-13. Improving Star Schema Query Performance 521 Chapter 15: Executing SQL in Parallel 525 15-1. Enabling Parallelism for a Specific Query 526 15-2. Enabling Parallelism at Object Creation 530 15-3. Enabling Parallelism for an Existing Object 532 15-4. Implementing Parallel DML 533 xiv

CONTENTS 15-5. Creating Tables in Parallel 536 15-6. Creating Indexes in Parallel 538 15-7. Rebuilding Indexes in Parallel 539 15-8. Moving Partitions in Parallel 541 15-9. Splitting Partitions in Parallel 542 15-10. Enabling Automatic Degree of Parallelism 543 15-11. Examining Parallel Explain Plans 545 15-12. Monitoring Parallel Operations 548 15-13. Finding Bottlenecks in Parallel Processes 550 15-14. Getting Detailed Information on Parallel Sessions 552 Index 555 XV