Part 1 – Foundations
1. Performance Problems
- Do We Need To Plan Performance?
- Designing for Performance
- Do We Have Performance Problems?
- How to Approach Performance Problems?
2. Key Concepts
- Selectivity and Cardinality
- What Is a Cursor?
- Life Cycle of a Cursor
- How Parsing Works
- Reading and Writing Blocks
- Instrumentation
Part 2 – Identification
3. Analysis of Reproducible Problems
- Tracing Database Calls
- Profiling PL/SQL Code
4. Real-Time Analysis of Irreproducible Problems
- Analysis Roadmap
- Dynamic Performance Views
- Analysis With Diagnostic and Tuning Pack
- Analysis Without Diagnostic Pack
5. Postmortem Analysis of Irreproducible Problems
- Repositories
- Automatic Workload Repository
- Statspack
- Analysis With Diagnostic and Tuning Pack
- Analysis Without Diagnostic Pack
Part 3 – Query Optimizer
6. Introducing the Query Optimizer
- Fundamentals
- Architecture
- Query Transformations
7. System Statistics
- The dbms_stats Package
- What System Statistics Are Available?
- Gathering System Statistics
- Restoring System Statistics
- Working with a Backup Table
- Logging of Management Operations
- Impact on the Query Optimizer
8. Object Statistics
- The dbms_stats Package
- What Object Statistics Are Available?
- Gathering Object Statistics
- Configuring the dbms_stats Package
- Working with Global Temporary Tables
- Working with Pending Object Statistics
- Working with Partitioned Objects
- Scheduling Object Statistics Gathering
- Restoring Object Statistics
- Locking Object Statistics
- Comparing Object Statistics
- Deleting Object Statistics
- Exporting, Importing, Getting, and Setting Object Statistics
- Logging of Management Operations
- Strategies for Keeping Object Statistics Up-to-Date
9. Configuring the Query Optimizer
- To Configure or Not to Configure
- Configuration Roadmap
- Set the Right Parameter!
10. Execution Plans
- Obtaining Execution Plans
- The dbms_xplan Package
- Interpreting Execution Plans
- Recognizing Inefficient Execution Plans
Part 4 – Optimization
11. SQL Tuning Techniques
- Altering the Access Structures
- Altering the SQL Statement
- Hints
- Altering the Execution Environment
- Stored Outlines
- SQL Profiles
- SQL Plan Baselines
12. Parsing
- Identifying Parsing Problems
- Solving Parsing Problems
- Working around Parsing Problems
- Using Application Programming Interfaces
13. Optimizing Data Access
- Identifying Suboptimal Access Paths
- SQL Statements with Weak Selectivity
- SQL Statements with Strong Selectivity
14. Optimizing Joins
- Definitions
- Nested Loop Joins
- Merge Joins
- Hash Joins
- Outer Joins
- Choosing Join Method
- Partition-Wise Joins
- Star Transformations
15. Beyond Data Access and Join Optimization
- Materialized View
- Result Caching
- Parallel Processing
- Direct-path Insert
- Row Prefetching
- Array Interface
16. Optimizing the Physical Design
- Optimal Column Order
- Optimal Datatype
- Row Migration and Row Chaining
- Block Contention
- Data Compression
Appendix A – Bibliography
Hi Antognini,
When this book is going to be published in India (indian edition ) ?
Regards,
Sangram
Hi Sangram
I’m not aware of plans to publish an Indian edition.
Best,
Chris
Hi Antognini,
When are you going to release the book covering versions 19c onwards.
Thanks
Navdeep
Hi Navdeep
I already have an almost full version also covering 12.2/18/19/21. So, I’m waiting for 23 on-prem to finish it.
Cheers,
Chris