1. Trang chủ
  2. » Công Nghệ Thông Tin

Oracle9i Database Performance Tuning Guide and Reference Release 2 (9.2) pot

810 5,5K 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 810
Dung lượng 4,81 MB

Nội dung

Oracle9 i Database Performance Tuning Guide and Reference Release 2 (9.2) October 2002 Part No. A96533-02 Oracle9i Database Performance Tuning Guide and Reference, Release 2 (9.2) Part No. A96533-02 Copyright © 2000, 2002 Oracle Corporation. All rights reserved. Primary Author: Connie Dialeris Green Graphic Designer: Valarie Moore Contributors: James Barlow, Eric Belden, Qiang Cao, Sumanta Chatterjee, Benoit Dageville, Vinayagam Djegaradjane, Harvey Eneman, Bjorn Engsig, Cecilia Gervasio, Ray Glasstone, Leslie Gloyd, Lester Gutierrez, Karl Haas, Brian Hirano, Andrew Holdsworth, Mamdouh Ibrahim, Christopher Jones, Srinivas Kareenhalli, Stella Kister, Herve Lejeune, Yunrui Li, Juan Loaiza, George Lumpkin, Joe McDonald, Bill McKenna, Sujatha Muthulingam, Gary Ngai, Michael Orlowski, Kant C. Patel, Richard Powell, Shankar Raman, Vinay Srihari, Sankar Subramanian, Margaret Susairaj, Hal Takahara, Nitin Vengurlekar, Stephen Vivian, Simon Watt, Andrew Witkowski, Graham Wood, and Mohamed Zait. The Programs (which include both the software and documentation) contain proprietary information of Oracle Corporation; they are provided under a license agreement containing restrictions on use and disclosure and are also protected by copyright, patent and other intellectual and industrial property laws. Reverse engineering, disassembly or decompilation of the Programs, except to the extent required to obtain interoperability with other independently created software or as specified by law, is prohibited. The information contained in this document is subject to change without notice. If you find any problems in the documentation, please report them to us in writing. Oracle Corporation does not warrant that this document is error-free. Except as may be expressly permitted in your license agreement for these Programs, no part of these Programs may be reproduced or transmitted in any form or by any means, electronic or mechanical, for any purpose, without the express written permission of Oracle Corporation. If the Programs are delivered to the U.S. Government or anyone licensing or using the programs on behalf of the U.S. Government, the following notice is applicable: Restricted Rights Notice Programs delivered subject to the DOD FAR Supplement are "commercial computer software" and use, duplication, and disclosure of the Programs, including documentation, shall be subject to the licensing restrictions set forth in the applicable Oracle license agreement. Otherwise, Programs delivered subject to the Federal Acquisition Regulations are "restricted computer software" and use, duplication, and disclosure of the Programs shall be subject to the restrictions in FAR 52.227-19, Commercial Computer Software - Restricted Rights (June, 1987). Oracle Corporation, 500 Oracle Parkway, Redwood City, CA 94065. The Programs are not intended for use in any nuclear, aviation, mass transit, medical, or other inherently dangerous applications. It shall be the licensee's responsibility to take all appropriate fail-safe, backup, redundancy, and other measures to ensure the safe use of such applications if the Programs are used for such purposes, and Oracle Corporation disclaims liability for any damages caused by such use of the Programs. Oracle is a registered trademark, and Oracle Expert, Oracle Store, Oracle7, Oracle8, Oracle9i, PL/SQL, SQL*Net, SQL*Plus, and iSQL*Plus are trademarks or registered trademarks of Oracle Corporation. Other names may be trademarks of their respective owners. iii Contents Send Us Your Comments xix Preface xxi Audience xxii Organization xxiii Related Documentation xxvi Conventions xxvii Documentation Accessibility xxx What’s New in Oracle Performance? xxxi Part I Writing and Tuning SQL 1 Introduction to the Optimizer Overview of SQL Processing 1-2 Overview of the Optimizer 1-3 Features that Require the CBO 1-4 Optimizer Operations 1-5 Choosing an Optimizer Approach and Goal 1-5 How the CBO Optimizes SQL Statements for Fast Response 1-9 Understanding the Cost-Based Optimizer 1-10 Components of the CBO 1-11 Understanding Execution Plans 1-18 Understanding Access Paths for the CBO 1-24 iv Full Table Scans 1-24 Rowid Scans 1-27 Index Scans 1-28 Cluster Scans 1-35 Hash Scans 1-36 Sample Table Scans 1-36 How the CBO Chooses an Access Path 1-37 Understanding Joins 1-40 How the CBO Executes Join Statements 1-40 How the CBO Chooses the Join Method 1-41 How the CBO Chooses Execution Plans for Join Types 1-42 Nested Loop Joins 1-45 Hash Joins 1-47 Sort Merge Joins 1-49 Cartesian Joins 1-50 Outer Joins 1-51 Setting Cost-Based Optimizer Parameters 1-55 Enabling CBO Features 1-55 Controlling the Behavior of the CBO 1-58 Overview of the Extensible Optimizer 1-61 Understanding User-Defined Statistics 1-62 Understanding User-Defined Selectivity 1-62 Understanding User-Defined Costs 1-63 2 Optimizer Operations How the Optimizer Performs Operations 2-2 How the CBO Evaluates IN-List Iterators 2-3 How the CBO Evaluates Concatenation 2-6 How the CBO Evaluates Remote Operations 2-10 How the CBO Executes Distributed Statements 2-13 How the CBO Executes Sort Operations 2-14 How the CBO Executes Views 2-18 How the CBO Evaluates Constants 2-19 How the CBO Evaluates the UNION and UNION ALL Operators 2-20 How the CBO Evaluates the LIKE Operator 2-22 v How the CBO Evaluates the IN Operator 2-22 How the CBO Evaluates the ANY or SOME Operator 2-22 How the CBO Evaluates the ALL Operator 2-23 How the CBO Evaluates the BETWEEN Operator 2-24 How the CBO Evaluates the NOT Operator 2-24 How the CBO Evaluates Transitivity 2-25 How the CBO Optimizes Common Subexpressions 2-26 How the CBO Evaluates DETERMINISTIC Functions 2-28 How the Optimizer Transforms SQL Statements 2-30 How the CBO Transforms ORs into Compound Queries 2-30 How the CBO Unnests Subqueries 2-33 How the CBO Merges Views 2-35 How the CBO Pushes Predicates 2-38 How the CBO Executes Compound Queries 2-48 3 Gathering Optimizer Statistics Understanding Statistics 3-2 Generating Statistics 3-3 Getting Statistics for Partitioned Schema Objects 3-4 Using the DBMS_STATS Package 3-5 Using the ANALYZE Statement 3-13 Finding Data Distribution 3-13 Missing Statistics 3-14 Using Statistics 3-14 Managing Statistics 3-15 Verifying Table Statistics 3-16 Verifying Index Statistics 3-17 Verifying Column Statistics 3-18 Using Histograms 3-20 When to Use Histograms 3-21 Creating Histograms 3-22 Types of Histograms 3-23 Viewing Histograms 3-25 Verifying Histogram Statistics 3-25 vi 4 Understanding Indexes and Clusters Understanding Indexes 4-2 Tuning the Logical Structure 4-2 Choosing Columns and Expressions to Index 4-3 Choosing Composite Indexes 4-4 Writing Statements That Use Indexes 4-6 Writing Statements That Avoid Using Indexes 4-6 Re-creating Indexes 4-7 Compacting Indexes 4-7 Using Nonunique Indexes to Enforce Uniqueness 4-8 Using Enabled Novalidated Constraints 4-8 Using Function-based Indexes 4-10 Setting Parameters to Use Function-Based Indexes in Queries 4-10 Using Index-Organized Tables 4-12 Using Bitmap Indexes 4-12 When to Use Bitmap Indexes 4-12 Using Bitmap Indexes with Good Performance 4-15 Initialization Parameters for Bitmap Indexing 4-17 Using Bitmap Access Plans on Regular B-tree Indexes 4-18 Bitmap Index Restrictions 4-19 Using Bitmap Join Indexes 4-19 Using Domain Indexes 4-19 Using Clusters 4-20 Using Hash Clusters 4-21 5 Optimizer Hints Understanding Optimizer Hints 5-2 Specifying Hints 5-3 Using Optimizer Hints 5-6 Hints for Optimization Approaches and Goals 5-6 Hints for Access Paths 5-9 Hints for Query Transformations 5-17 Hints for Join Orders 5-22 Hints for Join Operations 5-24 Hints for Parallel Execution 5-29 vii Additional Hints 5-34 Using Hints with Views 5-42 6 Optimizing SQL Statements Goals for Tuning 6-2 Reduce the Workload 6-2 Balance the Workload 6-2 Parallelize the Workload 6-2 Identifying and Gathering Data on Resource-Intensive SQL 6-3 Identifying Resource-Intensive SQL 6-3 Gathering Data on the SQL Identified 6-5 Dynamic Sampling 6-6 How Dynamic Sampling Works 6-7 When to Use Dynamic Sampling 6-7 How to Use Dynamic Sampling to Improve Performance 6-7 Overview of SQL Statement Tuning 6-8 Verifying Optimizer Statistics 6-8 Reviewing the Execution Plan 6-9 Restructuring the SQL Statements 6-10 Controlling the Access Path and Join Order with Hints 6-18 Restructuring the Indexes 6-22 Modifying or Disabling Triggers and Constraints 6-23 Restructuring the Data 6-23 Maintaining Execution Plans Over Time 6-23 Visiting Data as Few Times as Possible 6-23 7 Using Plan Stability Using Plan Stability to Preserve Execution Plans 7-2 Using Hints with Plan Stability 7-2 Storing Outlines 7-4 Enabling Plan Stability 7-4 Using Supplied Packages to Manage Stored Outlines 7-4 Creating Outlines 7-4 Using and Editing Stored Outlines 7-6 Viewing Outline Data 7-10 viii Moving Outline Tables 7-11 Using Plan Stability with the Cost-Based Optimizer 7-12 Using Outlines to Move to the Cost-Based Optimizer 7-13 Upgrading and the Cost-Based Optimizer 7-14 8 Using the Rule-Based Optimizer Overview of the Rule-Based Optimizer (RBO) 8-2 Understanding Access Paths for the RBO 8-3 Details of the RBO Access Paths 8-4 Choosing Execution Plans for Joins with the RBO 8-15 Transforming and Optimizing Statements with the RBO 8-17 Transforming ORs into Compound Queries with the RBO 8-17 Using Alternative SQL Syntax 8-18 Part II SQL-Related Performance Tools 9 Using EXPLAIN PLAN Understanding EXPLAIN PLAN 9-2 How Execution Plans Can Change 9-2 Minimizing Throw-Away 9-3 Looking Beyond Execution Plans 9-4 Creating the PLAN_TABLE Output Table 9-4 Running EXPLAIN PLAN 9-5 Identifying Statements for EXPLAIN PLAN 9-5 Specifying Different Tables for EXPLAIN PLAN 9-6 Displaying PLAN_TABLE Output 9-6 Reading EXPLAIN PLAN Output 9-7 EXPLAIN PLAN Examples 9-8 Viewing Bitmap Indexes with EXPLAIN PLAN 9-11 Viewing Partitioned Objects with EXPLAIN PLAN 9-12 Examples of Displaying Range and Hash Partitioning with EXPLAIN PLAN 9-12 Examples of Pruning Information with Composite Partitioned Objects 9-14 Examples of Partial Partition-wise Joins 9-16 Examples of Full Partition-wise Joins 9-17 ix Examples of INLIST ITERATOR and EXPLAIN PLAN 9-18 Example of Domain Indexes and EXPLAIN PLAN 9-20 Viewing Parallel Execution with EXPLAIN PLAN 9-20 CPU Costing Model 9-22 EXPLAIN PLAN Restrictions 9-22 PLAN_TABLE Columns 9-23 10 Using SQL Trace and TKPROF Understanding SQL Trace and TKPROF 10-2 Understanding the SQL Trace Facility 10-2 Understanding TKPROF 10-3 Using the SQL Trace Facility and TKPROF 10-3 Step 1: Setting Initialization Parameters for Trace File Management 10-4 Step 2: Enabling the SQL Trace Facility 10-5 Step 3: Formatting Trace Files with TKPROF 10-6 Step 4: Interpreting TKPROF Output 10-12 Step 5: Storing SQL Trace Facility Statistics 10-17 Avoiding Pitfalls in TKPROF Interpretation 10-20 Avoiding the Argument Trap 10-20 Avoiding the Read Consistency Trap 10-20 Avoiding the Schema Trap 10-21 Avoiding the Time Trap 10-22 Avoiding the Trigger Trap 10-23 Sample TKPROF Output 10-23 Sample TKPROF Header 10-23 Sample TKPROF Body 10-24 Sample TKPROF Summary 10-30 11 Using Autotrace in SQL*Plus Overview of the Autotrace Report 11-2 Configuring the Autotrace Report 11-2 Setups Required for the Autotrace Report 11-2 Execution Plans for SQL Statements 11-3 Database Statistics for SQL Statements 11-4 Tracing Statements Examples 11-5 x Collecting Timing Statistics 11-7 Tracing Parallel and Distributed Queries 11-7 Monitoring Disk Reads and Buffer Gets 11-9 SYSTEM Variables Influencing SQL*Plus Performance 11-9 SET APPINFO OFF 11-9 SET ARRAYSIZE 11-10 SET DEFINE OFF 11-10 SET FLUSH OFF 11-10 SET SERVEROUTPUT 11-10 SET TRIMOUT ON 11-10 SET TRIMSPOOL ON 11-11 iSQL*Plus Server Statistics Report 11-11 Active Statistics 11-12 Interpreting Active Statistics 11-13 12 Using Oracle Trace Overview of Oracle Trace 12-2 Event Data 12-2 Event Sets 12-2 Accessing Collected Data 12-3 Collecting Oracle Trace Data 12-3 Using the Oracle Trace Command-Line Interface 12-3 Using Initialization Parameters to Control Oracle Trace 12-7 Controlling Oracle Trace Collections from PL/SQL 12-10 Accessing Oracle Trace Collection Results 12-12 Formatting Oracle Trace Data to Oracle Tables 12-13 Running the Oracle Trace Reporting Utility 12-14 Oracle Server Events 12-15 Data Items Collected for Events 12-16 Items Associated with Each Event 12-22 Troubleshooting Oracle Trace 12-32 Oracle Trace Configuration 12-32 Formatter Tables 12-37 [...]... 21 -2 21 -2 21-3 21 -4 21 -4 21 -4 21 -6 21 -6 21 -7 21 -8 21 -9 21 -15 21 -20 21 -21 21 -22 21 -25 21 -26 21 -26 21 -27 21 -27 21 -27 21 -28 21 -28 xv Part V 22 Optimizing Instance Performance Instance Tuning Performance Tuning Principles 22 -2 Baselines 22 -2 The Symptoms and the Problems 22 -3 When to Tune 22 -4 Performance Tuning Steps 22 -5 Define... A 24 -28 24 -29 24 -31 24 - 32 24- 32 24-33 24 -36 24 -37 24 -41 24 -45 24 -45 24 -46 24 -51 24 -53 24 -57 24 -59 24 -61 24 -61 24 -67 24 -69 24 -70 Schemas Used in Performance Examples PER_ALL_PEOPLE_F Table RA_CUSTOMERS Table SO_HEADERS_ALL and SO_HEADERS Tables MTL_SYSTEM_ITEMS Table SO_LINES_ALL and SO_LINES Tables Glossary Index xviii A -2 A -2 A-3... V$LOCK V$MTTR_TARGET_ADVICE V$MYSTAT V$OPEN_CURSOR V$PARAMETER and V$SYSTEM_PARAMETER V$PROCESS 24 -2 24 -2 24 -2 24-4 24 -5 24 -5 24 -6 24 -9 24 -13 24 -13 24 -15 24 -16 24 -17 24 -21 24 -22 24 -23 24 -25 24 -26 xvii V$ROLLSTAT V$ROWCACHE V$SEGMENT_STATISTICS V$SEGSTAT V$SEGSTAT_NAME... 22 -24 SQL*Net 22 -25 buffer busy waits 22 -27 db file scattered read 22 -29 db file sequential read 22 -31 direct path read and direct path read (lob) 22 -33 direct path write 22 -35 enqueue 22 -36 free buffer waits 22 -39 latch free 22 -41 log buffer space 22 -46... 22 -6 Examine the Host System 22 -7 Examine the Oracle Statistics 22 -10 Implement and Measure Change 22 -14 Interpreting Oracle Statistics 22 -15 Examine Load 22 -15 Using Wait Event Statistics to Drill Down to Bottlenecks 22 -16 Table of Wait Events and Potential Causes 22 -19 Additional Statistics 22 -20 Wait... Using Connection Manager Part VI 24 23 -2 23-6 23 -6 23 -6 23 -8 23 -8 23 -10 23 -13 23 -13 23 -14 23 -14 Performance- Related Reference Information Dynamic Performance Views for Tuning Dynamic Performance Tables Current State Views Counter/Accumulator Views Information Views Description of Dynamic Performance Views V$DB_OBJECT_CACHE ... 22 -46 log file switch 22 -46 log file sync 22 -48 rdbms ipc reply 22 -48 Idle Wait Events 22 -49 xvi 23 Tuning Networks Understanding Connection Models Detecting Network Problems Using Dynamic Performance Views for Network Performance Understanding Latency and Bandwidth Solving Network Problems... sites xxx What’s New in Oracle Performance? This section describes new performance features of Oracle9i Release 2 (9 .2) and provides pointers to additional information The features and enhancements described in this section comprise the overall effort to optimize server performance Note: Before using this performance tuning reference, make sure you have read Oracle9i Database Performance Planning Oracle... Developer’s Guide - Fundamentals, and the Oracle9i Database Administrator’s Guide For more information about Oracle Enterprise Manager and its optional applications, see Oracle Enterprise Manager Concepts Guide, Oracle Enterprise Manager Administrator’s Guide, and Database Tuning with the Oracle Tuning Pack For more information about tuning data warehouse environments, see the Oracle9i Data Warehousing Guide. .. maintenance, and performance of Oracle This book describes detailed ways to enhance Oracle performance by writing and tuning SQL properly, using performance tools, and optimizing instance performance It also explains how to create an initial database for good performance and includes performance- related reference information This book could be useful for database administrators, application designers, and programmers . Oracle9 i Database Performance Tuning Guide and Reference Release 2 (9 .2) October 20 02 Part No. A96533- 02 Oracle9i Database Performance Tuning Guide and Reference, . Instance Performance 22 Instance Tuning Performance Tuning Principles 22 -2 Baselines 22 -2 The Symptoms and the Problems 22 -3 When to Tune 22 -4 Performance Tuning

Ngày đăng: 07/03/2014, 23:20

TỪ KHÓA LIÊN QUAN