Book description
The books in O'Reilly's Oracle series are authoritative -- they tell the whole story about complex topics, ranging from performance tuning to the use of packages in PL/SQL to new technologies like Power Objects. And they're independent; they're alternatives for readers who need to know how products and features really work. They're packed with real-world advice and techniques from practitioners in the field, and they come with disks containing code you can use immediately in your own applications. O'Reilly is the alternative for Oracle people who need to solve problems -- and solve them now.Performance tuning is crucial in any modern relational database management system. Too many organizations respond to Oracle performance problems by throwing money at these problems -- by buying larger and more expensive computers or by hiring expert consultants. But there's a lot you can do on your own to increase dramatically the performance of your existing system. Whatever version of Oracle you're running -- from Version 6 to Oracle8, proper tuning can save your organization a huge amount of money in additional equipment, extra memory, and hardware upgrades.The first edition of Oracle Performance Tuning became a classic for programmers, managers, database administrators, system administrators, and anyone who cares about improving the performance of an Oracle system. This second edition contains 400 pages of updated material updating on Oracle features, incorporating advice about disk striping and mirroring, RAID, client-server, distributed databases, MPPS, SMPs, and other architectures. It also includes chapters on parallel server, parallel query, backup and recovery, the Oracle Performance Pack, and more.
Table of contents
-
Table of Contents
- Why Tuning? 5
- Who Tunes? 8
- When Do You Tune? 9
- A Look at Recent Versions 17
- How Much Tuning Is Enough? 24
- Problems with Design and Development 27
- Problems with System Resources 30
- Memory Problems and Tuning 33
- Disk I/O Problems and Tuning 35
- CPU Problems and Tuning 38
- Network Problems and Tuning 40
- Managing the Problem of Response Time 44
- Managing the Problem of Long-Running Jobs 49
- Managing the Workload in Your System 53
- Making the Decision to Buy More Equipment 55
- Management Checkpoints 57
- Performance Hints for Managers 61
- Selecting a Common Design Methodology 64
- Selecting Your Software 64
- Selecting Your Hardware 65
- Setting Up Screen and Report Templates 68
- Using Modular Programming Techniques 71
- Defining System Libraries 71
- Enforcing Program Version Control 73
- Establishing Documentation Standards 73
- Establishing Database Environment Standards 74
- Security Standards 76
- Performance Standards 77
- Common Design Problems 83
- Choosing an Architecture 85
- Tuning Your Data Model 88
- Tuning Indexes 98
- Testing the Data Model for Performance 103
- Denormalizing a Database 106
- Constraints 117
- Triggers 119
- Packages, Procedures, and Functions 121
- Designing a Very Large Database Application 121
- Miscellaneous Design Considerations 130
- SQL Standards 134
- The SQL Optimizer 138
- SQL Tuning 148
- Common Sense in SQL 163
- SQL Performance Tips and Hints 173
- Using Indexes to Improve Performance 183
- SQL Tuning Alternatives 191
- Identifying Poor SQL Statements 201
- Adjusting SQL Statements Over Time 203
- PL/SQL and SQL 206
- What Does PL/SQL Offer? 206
- PL/SQL Limitations 213
- PL/SQL Coding Standards 218
- Tuning PL/SQL 221
- Exploiting the Power of PL/SQL 242
- Oracle PL/SQL Function Extensions 260
- What Is Locking? 269
- Releasing Locks 272
- Avoiding the Dreaded Deadlock 274
- Locking Considerations for Oracle Features 276
- Overriding the Default Locking Strategy 284
- Internal Lock Contention 289
- Lock Detection Scripts 292
- Steps in Setting Up a Database 301
- Tuning Memory 302
- Tuning Disk I/O 309
- Creating the Database 317
- Creating the Tablespaces 320
- Creating Rollback Segments 337
- Creating Tables 344
- Creating Indexes 351
- Creating Views 356
- Creating Users 357
- INIT.ORA Parameter Summary 358
- Creating Very Large Databases 379
- MONITOR: Monitoring System Activity Tables 387
- SQL_TRACE: Writing a Trace File 388
- TKPROF: Interpreting the Trace File 391
- EXPLAIN PLAN: Explaining the Optimizer’s Plan 397
- ORADBX: Listing Events 406
- ANALYZE: Validating and Computing Statistics 408
- UTLBSTAT.sql and UTLESTAT.sql: Taking Snapshots 410
- Other Oracle Scripts 424
- Some Scripts of Our Own 427
- Oracle Performance Manager 442
- Identifying Untuned Application Code 444
- Tuning Memory 453
- Tuning Disk I/O 479
- Avoiding Contention 497
- Introduction to Parallel Server 521
- Parallel Server Architecture 523
- Parallel Server Locking 525
- Parallel Server Design 529
- Parallel Server Database 537
- Tuning Instances 540
- INIT.ORA Parameters 541
- Ongoing Tuning 545
- Introduction to Parallel Query 551
- PQO Design Considerations 556
- Constructing Your Database for PQO 560
- INIT.ORA Parameters 564
- Ongoing Tuning of Query Servers 570
- Creating Indexes in Parallel 574
- Using PQO to Speed Data Loads 575
- Performing Parallel Recovery 576
- The DBA’s Responsibility 579
- Backing Up the Database 580
- Preparing to Recover the Database 600
- Recovering the Database 628
- Correctly Sizing Tables and Indexes 650
- Exploiting Array Processing 653
- Optimizing INIT.ORA Parameters 656
- Disk Tuning 660
- Running Jobs in Parallel 663
- DBA Tuning for Long-Running Jobs 665
- Creating Overnight Extract Tables 668
- Index Operations 668
- Using PL/SQL to Speed Up Updates 671
- Inline Functions 672
- Minimizing the Number of Updates 677
- Tuning EXPORT and IMPORT Utilities 677
- What Is Client-Server? 684
- Network Topology 686
- Where Should You Put the Network Hardware? 689
- Client-Server Performance Issues 692
- Tuning Precompilers for Client-Server 706
- Tuning the Network Itself 707
- Tuning SQL*Net 708
- Client-Server: Adapting It in the Real World 716
- About Capacity Planning 722
- What Do You Need to Test? 723
- Capacity Planning Checklist 727
- UNIX-Specific Tuning 745
- VMS-Specific Tuning 761
- Oracle7.0 Features 773
- Oracle7.1 Features 775
- Oracle7.2 Features 776
- Oracle7.3 Features 777
- Questions from Planners and Managers 781
- Questions from Analysts and Designers 786
- Questions from Programmers 793
- Questions from Database Administrators 808
- Questions from System Administrators 848
- Introduction to Financials Tuning 851
- Installing Oracle Financials 853
- Database-Level Tuning 857
- Upgrading Oracle Financials 859
- Concurrent Request Processing 860
- Archiving and Purging 865
- The GL Optimizer 868
- Developer Utilities 868
- Financials Tips 869
- Resources for Financials Developers 871
- Oracle Performance Manager 876
- Oracle Lock Manager 879
- Oracle Topsessions 880
- Oracle Tablespace Manager 882
- Oracle Expert and Oracle Trace 884
- GUI Tips 899
- General Tips 900
- Case Study Database 1 903
- Case Study Database 2 916
- Preface (1/2)
- Preface (2/2)
- I
- Introduction to Oracle Performance Tuning
- What Causes Performance Problems?
- II
-
Planning and Managing the Tuning Process
-
Managing the Problem of Response Time
- Planning for Complaints About Response Time
- Investigating Complaints About Response Time
-
Considering a Tuning Service Agreement
- A. Inclusions and Exclusions
- A.1 The tuning service agreement includes the following:
- A.2 The tuning service agreement excludes the following:
- B. Requirements
- B.1 Achieving necessary throughput to keep the company operating
- B.2 User Satisfaction
- C. Regular Response Time Reporting
- D. Response Time Requirements
- D.1 Scenario 1
- D.2 Scenario 2
- Managing the Problem of Long-Running Jobs
- Managing the Workload in Your System
- Making the Decision to Buy More Equipment
- Management Checkpoints
- Performance Hints for Managers
-
Managing the Problem of Response Time
-
Defining System Standards
- Selecting a Common Design Methodology
- Selecting Your Software
- Selecting Your Hardware
- Setting Up Screen and Report Templates
- Using Modular Programming Techniques
- Defining System Libraries
- Enforcing Program Version Control
- Establishing Documentation Standards
- Establishing Database Environment Standards
- Security Standards
- Performance Standards
- III
- Designing for Performance
- IV
-
Tuning SQL
- SQL Standards
- The SQL Optimizer
- SQL Tuning
- Common Sense in SQL
-
SQL Performance Tips and Hints
- Combining Simple, Unrelated Database Accesses
- Deleting Duplicate Records
- Counting Rows from Tables
- Using WHERE in Place of HAVING
- Tuning Views
- Minimizing Table Lookups in a Query
- Consider Table Joins in Place of EXISTS
- Consider EXISTS in Place of Table Joins
- Consider EXISTS in Place of DISTINCT
- Consider NOT EXISTS in Place of NOT IN
- Consider UNION ALL in Place of UNION
- Consider IN or UNION in Place of OR
- Using Indexes to Improve Performance
- SQL Tuning Alternatives
- Identifying Poor SQL Statements
- Adjusting SQL Statements Over Time
-
Tuning PL/SQL
- PL/SQL and SQL
- What Does PL/SQL Offer?
- PL/SQL Limitations
- PL/SQL Coding Standards
- Tuning PL/SQL
- Exploiting the Power of PL/SQL
-
Oracle PL/SQL Function Extensions
- DBMS_OUTPUT: dbmsotpt.sql
- DBMS_SHARED_POOL: dbmspool.sql
- DBMS_TRANSACTION: dbmsutil.sql
- DBMS_SQL: dbmssql.sql
- DBMS_PIPE: dbmspipe.sql
- DBMS_ALERT: dbmsalrt.sql
- DBMS_SESSION: dbsmutil.sql
- DBMS_DDL: dbmsutil.sql
- DBMS_UTILITY: dbmsutil.sql
- DBMS_JOB: dbms_job.sql, catjobq.sql
- DBMS_APPLICATION_INFO: dbmsutl.sql
- Selecting a Locking Strategy
- V
-
Tuning a New Database
- Steps in Setting Up a Database
- Tuning Memory
- Tuning Disk I/O
- Creating the Database
-
Creating the Tablespaces
- System Tablespace
- Table Tablespaces
- Index Tablespaces
- Temporary Tablespace
- User Tablespaces
- Rollback Segment Tablespace
- Products Tablespace
- Large Object Tablespaces
- LOB Tablespaces and External Files
- Number of Database Files per Tablespace
- Striping Your Data Files
- Coalescing Tablespaces and Deallocating Unused Space
- Setting Default Storage for Tablespaces
- Creating Rollback Segments
- Creating Tables
- Creating Indexes
- Creating Views
- Creating Users
- INIT.ORA Parameter Summary (1/5)
- INIT.ORA Parameter Summary (2/5)
- INIT.ORA Parameter Summary (3/5)
- INIT.ORA Parameter Summary (4/5)
- INIT.ORA Parameter Summary (5/5)
- Creating Very Large Databases
-
Diagnostic and Tuning Tools
- MONITOR: Monitoring System Activity Tables
- SQL_TRACE: Writing a Trace File
- TKPROF: Interpreting the Trace File
- EXPLAIN PLAN: Explaining the Optimizer’s Plan
- ORADBX: Listing Events
- ANALYZE: Validating and Computing Statistics
- UTLBSTAT.sql and UTLESTAT.sql: Taking Snapshots
- Other Oracle Scripts
-
Some Scripts of Our Own
- What Version of Oracle?
- What Are the INIT.ORA Settings?
- Looking Inside the SGA
- Identifying Database Extents
- Performing Database Table Sizing
- Checking Extent Sizes and PCTINCREASE
- Looking at Objects That Can’t Throw an Extent
- Determining Archive Log Disk Location
- Which User Is Using the CPU?
- Computing the Hit Ratio
- Looking at the Dictionary Cache
- Looking at Rollback Segment Usage
- Finding Foreign Key Relationships
- Listing Columns with Inconsistent Data Types or Lengths
- Listing Tables That Are Cached
- Listing Invalid Objects
- Listing All Triggers
- Doing Latch Analysis
- Checking the Number of Objects
- Oracle Performance Manager
-
Monitoring and Tuning an Existing Database
- Identifying Untuned Application Code
- Tuning Memory
- Tuning Disk I/O
-
Avoiding Contention
- Tuning the Database Writer
- Tuning Rollback Segments
- Monitoring and Tuning Redo Log Files (1/2)
- Monitoring and Tuning Redo Log Files (2/2)
- Reducing Buffer Cache Latch Contention
- Reducing Library Cache Latch Contention
- Reducing Multithreaded Server Process Contention
- Reducing Locking Problems (1/2)
- Reducing Locking Problems (2/2)
- Tuning Parallel Server
- Tuning Parallel Query
-
Tuning Database Backup and Recovery
- The DBA’s Responsibility
- Backing Up the Database
- Preparing to Recover the Database
- Recovering the Database
- VI
-
Tuning Long-Running Jobs
- Correctly Sizing Tables and Indexes
- Exploiting Array Processing
- Optimizing INIT.ORA Parameters
- Disk Tuning
- Running Jobs in Parallel
- DBA Tuning for Long-Running Jobs
- Creating Overnight Extract Tables
- Index Operations
- Using PL/SQL to Speed Up Updates
- Inline Functions
- Minimizing the Number of Updates
- Tuning EXPORT and IMPORT Utilities
-
Tuning in the Client-Server Environment
- What Is Client-Server?
- Network Topology
- Where Should You Put the Network Hardware?
-
Client-Server Performance Issues
- Reducing Oracle Network Traffic
- Tuning ARRAYSIZE
- Tuning PL/SQL
- Choosing Explicit SELECT Statements
- Combining SELECT Statements
- SQL*Forms Base Table Views
- Referential Integrity and Delete Cascade
- Automatic Table Replication/Snapshots
- Stored Database Triggers
- Stored Database Functions, Procedures, and Packages
- Inline Database Functions
- Running Long-Running Jobs at the Server End
- Tuning Precompilers for Client-Server
- Tuning the Network Itself
- Tuning SQL*Net
- Client-Server: Adapting It in the Real World
- Capacity Planning
- Tuning for Specific Systems
- VII
- Summary of New Features
-
Hot Tuning Tips
- Questions from Planners and Managers
- Questions from Analysts and Designers (1/2)
- Questions from Analysts and Designers (2/2)
- Questions from Programmers (1/3)
- Questions from Programmers (2/3)
- Questions from Programmers (3/3)
- Questions from Database Administrators (1/8)
- Questions from Database Administrators (2/8)
- Questions from Database Administrators (3/8)
- Questions from Database Administrators (4/8)
- Questions from Database Administrators (5/8)
- Questions from Database Administrators (6/8)
- Questions from Database Administrators (7/8)
- Questions from Database Administrators (8/8)
- Questions from System Administrators
- Tuning Oracle Financials
- Oracle Performance Pack
- Tuning Oracle Forms 4.0 and 4.5
- Tuning Case Studies
- Dynamic Performance Tables
- Index (1/4)
- Index (2/4)
- Index (3/4)
- Index (4/4)
Product information
- Title: Oracle Performance Tuning, 2nd Edition
- Author(s):
- Release date: November 1996
- Publisher(s): O'Reilly Media, Inc.
- ISBN: 9780596515676
You might also like
book
Oracle PL/SQL Performance Tuning Tips & Techniques
Proven PL/SQL Optimization Solutions In Oracle PL/SQL Performance Tuning Tips & Techniques, Oracle ACE authors with …
video
The Oracle Database Performance Tuning Course
Oracle Database Performance Tuning is improving the speed and efficiency of Oracle database systems by identifying …
book
Oracle Database 12c Release 2 Performance Tuning Tips & Techniques
Proven Database Optimization Solutions―Fully Updated for Oracle Database 12c Release 2 Systematically identify and eliminate database …
book
Optimizing Oracle Performance
Oracle system performance inefficiencies often go undetected for months or even years--even under intense scrutiny--because traditional …