Copyright
Dedication
Foreword
Preface
Why I Wrote This Book
Audience for This Book
Structure of This Book
Which Platform and Version?
What This Book Is and Is Not
About the Tools, Examples, and Exercises
Citations
Conventions Used in This Book
Comments and Questions
Acknowledgments

Part I: Method
Chapter 1. A Better Way to Optimize
Section 1.1. "You\'re Doing It Wrong"
Section 1.2. Requirements of a Good Method
Section 1.3. Three Important Advances
Section 1.4. Tools for Analyzing Response Time
Section 1.5. Method R

Chapter 2. Targeting the Right User Actions
Section 2.1. Specification Reliability
Section 2.2. Making a Good Specification
Section 2.3. Specification Over-Constraint

Chapter 3. Targeting the Right Diagnostic Data
Section 3.1. Expectations About Data Collection
Section 3.2. Data Scope
Section 3.3. Oracle Diagnostic Data Sources
Section 3.4. For More Information

Chapter 4. Targeting the Right Improvement Activity
Section 4.1. A New Standard of Customer Care
Section 4.2. How to Find the Economically Optimal Performance Improvement Activity
Section 4.3. Making Sense of Your Diagnostic Data
Section 4.4. Forecasting Project Net Payoff


Part II: Reference
Chapter 5. Interpreting Extended SQL Trace Data
Section 5.1. Trace File Walk-Through
Section 5.2. Extended SQL Trace Data Reference
Section 5.3. Response Time Accounting
Section 5.4. Evolution of the Response Time Model
Section 5.5. Walking the Clock
Section 5.6. Forward Attribution
Section 5.7. Detailed Trace File Walk-Through
Section 5.8. Exercises

Chapter 6. Collecting Extended SQL Trace Data
Section 6.1. Understanding Your Application
Section 6.2. Activating Extended SQL Trace
Section 6.3. Finding Your Trace File(s)
Section 6.4. Eliminating Collection Error
Section 6.5. Exercises

Chapter 7. Oracle Kernel Timings
Section 7.1. Operating System Process Management
Section 7.2. Oracle Kernel Timings
Section 7.3. How Software Measures Itself
Section 7.4. Unaccounted-for Time
Section 7.5. Measurement Intrusion Effect
Section 7.6. CPU Consumption Double-Counting
Section 7.7. Quantization Error
Section 7.8. Time Spent Not Executing
Section 7.9. Un-Instrumented Oracle Kernel Code
Section 7.10. Exercises

Chapter 8. Oracle Fixed View Data
Section 8.1. Deficiencies of Fixed View Data
Section 8.2. Fixed View Reference
Section 8.3. Useful Fixed View Queries
Section 8.4. The Oracle "Wait Interface"
Section 8.5. Exercises

Chapter 9. Queueing Theory for the Oracle Practitioner
Section 9.1. Performance Models
Section 9.2. Queueing
Section 9.3. Queueing Theory
Section 9.4. The M/M/m Queueing Model
Section 9.5. Perspective
Section 9.6. Exercises


Part III: Deployment
Chapter 10. Working the Resource Profile
Section 10.1. How to Work a Resource Profile
Section 10.2. How to Forecast Improvement
Section 10.3. How to Tell When Your Work Is Done

Chapter 11. Responding to the Diagnosis
Section 11.1. Beyond the Resource Profile
Section 11.2. Response Time Components
Section 11.3. Eliminating Wasteful Work
Section 11.4. Attributes of a Scalable Application

Chapter 12. Case Studies
Section 12.1. Case 1: Misled by System-Wide Data
Section 12.2. Case 2: Large CPU Service Duration
Section 12.3. Case 3: Large SQL*Net Event Duration
Section 12.4. Case 4: Large Read Event Duration
Section 12.5. Conclusion


Part IV: Appendixes
Glossary
Appendix A. Greek Alphabet
Appendix B. Optimizing Your Database Buffer Cache Hit Ratio
Appendix C. M/M/m Queueing Theory Formulas
Appendix D. References

Colophon
Index