- Turbocharge your Oracle, DB2, Sybase, or Informix
database environment!
- Covers every aspect of database and Solaris Operating
Environment tuning
- Optimize data layout, CPU and memory configuration, and
system sizing
- Identify and resolve bottlenecks, step-by-step
- Understand industry-leading benchmarks
Maximize the performance of any enterprise database
running on the Solaris Operating Environment!
Using this book, database professionals can optimize the
performance and cost-effectiveness of virtually any
database application running on the Solaris platform.
Database specialist Allan Packer presents start-to-finish
guidance for optimizing all four leading Solaris platform
databases: Oracle (including Oracle9i), DB2, Sybase, and
Informix XPS. Drawing on years of expertise as an engineer
at Sun, Packer brings together best-practice guidelines for
every aspect of Sun database server tuning.
- Optimizing data layout, CPU and memory configuration,
and system sizing
- Identifying and resolving bottlenecks: a systematic,
drill-down monitoring approach
- Understanding database optimizers, database buffer
cache, and other key subsystems
- Demystifying the industry's leading benchmarks-and
recognizing their limitations
- Understanding the impact of Java technology on database
application design
- Contains a quick primer on database architecture and
concepts
Contents
Foreword
Preface
Acknowledgments
I. DATABASES ON SUN
SERVERS.
1. Sun's
Relationship with Database Vendors . The Nature of the
Relationship. Engineering. Marketing. Joint Sales
Activities. The Major Database Suppliers. Sun and DB2 for
Solaris. Sun and Oracle. Sun and Sybase. Sun and Informix.
Other Databases on Sun.
2. The Role of Database Engineering at Sun. Sun's Database Engineering
Group. Related Efforts Within Sun. The Ambassador
Program.
3. Solaris Optimizations for Databases. Scheduling Optimizations.
Preemption Control. Dispatch Table Modifications. I/O
Optimizations. The pread and pwrite System Calls. Kernel
Asynchronous I/O. Unix File System Enhancements. Other I/O
Optimizations. Other Optimizations. Compiler Optimizations.
Intimate Shared Memory. Dynamic Reconfiguration. Dynamic
Intimate Shared Memory. Reconfiguration Coordination
Manager.
4. Hardware Architecture and Databases. Hardware Architectures.
Symmetric Multiprocessor (SMP) Systems. Nonuniform Memory
Architecture (NUMA) Systems. Massively Parallel Processor
(MPP) Systems. Chip-Level Multiprocessing (CLMP) Systems.
Databases on SMP and NUMA Systems. Shared-Disk Databases on
SMPs. Shared-Nothing Databases on SMPs. Should You Split
Up? To Partition or Not to Partition?
II. Database Architecture.
5.
Introduction to Database Architecture. Architecture of Relational
Databases. Data Store. Database Engine. Query Optimizer.
Database Shared Memory. Logger. Pagecleaners. Database
Recovery Process. Locking Subsystem. System Monitor.
Command Interface. APIs. Database Monitoring. Process
Models. 2n Architectures. Multithreaded Architectures.
Parallel Processing. Distributed Databases. Replicated
Databases. Transaction Monitors. Transactions and Ad Hoc
Queries. User Multiplexing. Transaction Routing.
6. Database Workloads. Online Transaction
Processing (OLTP). Decision Support Systems (DSS). Data
Warehouses and Data Marts. Operational Data Stores. Data
Mining. Batch Workloads. Online Analytical Processing
(OLAP).
7. The Role of the Buffer Cache. Overview of the Buffer
Cache. Monitoring the Buffer Cache. An Acceptable Cache Hit
Rate. The Cache Hit Rate Confusion. Cache Hit Rate
Guidelines. A Worked Example. Sizing the Buffer Cache.
Influence of Buffer Cache Size on Throughput. Influence of
Buffer Cache Size on Data Cache Hit Rate. Influence of Page
Size on Buffer Cache Effectiveness.
8. The Role of the Database Optimizer. Query Optimizers. Query
Compilation. Query Optimization. Factors Affecting Query
Optimization. Optimization Methods. Table Access. Table
Join Order. Join Methods. Executing the Query Plan.
Reducing the Workload. Data Partitioning. Denormalization.
Concatenated Indexes. Exotic Optimizations. Expert
Intervention.
9. Oracle Architecture. Process Model. Memory
Management. System Global Area (SGA). Program Global Area
(PGA). Physical Data Storage. Tablespaces. Redo Log Files.
Control Files. Logical Data Storage. Segments. Extents.
Blocks. Partitions. System Tablespace. Parallel Processing.
The Parallel Query Option (PQO). Other Parallel
Capabilities.
10. Sybase Architecture. Process Model. Memory
Management. Data Cache. Procedure Cache. Physical Data
Storage. Logical Data Storage. Tables and Indexes. Table
Partitioning. System Databases. Parallel Processing.
Adaptive Server IQ with Multiplex. Column Storage.
Indexing. I/O and Caches. Parallelism. IQ Multiplex.
Interfaces.
11 Informix XPS Architecture. Process Model. Coservers.
Virtual Processors. Memory Management. Buffer Pool. DS
Memory. Dynamic Memory Allocation. Page Cleaning. Physical
Data Storage. Logical Data Storage. Pages. Extents.
Dbspaces. Dbslices. Tables and Indexes. Logical and
Physical Logs. Fragmentation. Tblspaces. System Database.
Parallel Processing. Query Parallelism. Colocated
Joins.
12. DB2 for Solar is Architecture. Process Model. Memory
Management. Bufferpools. Bufferpool Management. Physical
Data Storage. Tablespaces. Log Files. Logical Data Storage.
System Tablespaces. Parallel Processing. DB2 Universal
Database Enterprise Edition (EE). DB2 Universal Database
Enterprise-Extended Edition (EEE). Other DB2-Related
Products.
III. SIZING AND CONFIGURING
SUN DBMS SERVERS.
13. Sizing
Systems for Databases. Basis of a Sizing
Estimate. Minimum Requirements. Limitations of Estimates.
The Right Questions. What type of workload is it? What is
the status of the application? How many users? Do
processing requirements vary with work shifts? How are
users connected to the database server? What are the
response time expectations? What I/O capacity and
throughput are required? How much memory is required? What
is the expected system growth rate? Using Published TPC
Results for Sizing. Using TPC-C to Size Real-World OLTP
Servers. Using TPC-D or TPC-R to Size Real-World DSS
Servers. Using TPC-H to Size Real-World DSS Servers. Using
Remote Terminal Emulators. Summary of Rules of Thumb. A
General-Purpose OLTP Sizing Tool. Background. Establishing
Metrics. The Search for Simplifying Assumptions. Gathering
the Raw Data. Asking the Right Questions. Building a Model.
Validating the Model. The Resulting Tool. Conclusions.
Bibliography.
14. Configuring Systems. Solaris Configuration.
Memory Interleaving. Benefits of Memory Interleaving.
Evaluation of Interleaving.
15. Configuring CPU. Managing Workloads.
Domains. Processor Sets. Resource Management. CPU
Performance. Process Binding. Solaris Scheduling
Classes.
16. Configuring The Network. Performance
Considerations. Availability Considerations.
17. Data Layout. Storage Subsystems.
Individually Addressable Disks. RAID-Based Arrays. Storage
Area Networks (SANs). Network Attached Storage (NAS).
Volume Managers. Veritas Volume Manager (Veritas). Solaris
Volume Manager (SVM). RAID Manager (RM6). Component
Manager. GUI Administration. Relative Performance. Data
Layout Technologies. Introduction to RAID. Concatenation.
RAID 0: Striping. RAID 1: Mirroring. RAID 0+1: Striping
Plus Mirroring. RAID 1+0: Mirroring and Striping. RAID 3:
Striping with Dedicated Parity Disk. RAID 5: Striping with
Distributed Parity. Summary of RAID Technology. Database
Files on UFS. Database Files on Raw Devices. Write Caches.
Data Layout Strategies. Efficient Data Layout. Raw Devices
vs. UFS. The Right and Wrong Way to Stripe. Placing Data
and Indexes. Laying Out Data on a Single Disk. Write Caches
for Improved Performance. High Availability. Disk Failure
Planning. Performance Implications of Mirroring.
Elimination of Single Points of Failure. Other Data Layout
Issues. Database File Naming Using Symlinks. Migration
Between Raw Devices and File Systems. RAID 5 Performance
with Databases. The Implications of RAID for Database
Optimizers. Volume Manager Pros and Cons. Storage
Cocktails. Data Layout Recommendations. A Worked
Example.
IV. PERFORMANCE MONITORING AND
TUNING.
18.
Troubleshooting Methods. Problem-Solving Strategy
Development. The Nature of the Problem. Possible
Contributors to the Problem. Drilling Down to Find the Root
Cause.
19. Major Contributors to Poor Performance. Performance Problem
Identification. Poorly Designed Applications. Poor Database
Design and Implementation. Problems with the User
Environment. Poor Data Layout. The Next Step.
20. System Performance Monitoring Tools. Basic Solaris Tools.
Monitoring Intervals. Other Monitoring Tools.
21. Drill-Down Monitoring. STEP 1. Monitoring Memory.
STEP 2. Monitoring Disks. STEP 3. Monitoring Networks. STEP
4. Monitoring CPUs. STEP 5. Monitoring and Tuning a
Database. EXTRA STEP: Checking for ISM.
22. Monitoring and Tuning Oracle. Managing Oracle Behavior.
Running Administrative Commands. Viewing Current Oracle
Tunable Parameters. Changing Tunable Parameters for Oracle.
Making Dynamic Parameter Changes Persistent. Viewing and
Changing Hidden Parameters. Monitoring Error Messages.
Using Oracle Enterprise Manager. Monitoring Oracle System
Tables. Generating Explain Plans. Calculating the Buffer
Cache Hit Rate. Monitoring Oracle with utlbstat/utlestat.
The Library Cache. User Connections. Systemwide Wait
Events. Latch Wait Events. Buffer Busy Wait Statistics.
Rollback Segments. Modified init.ora Parameters. Dictionary
Cache Statistics. Tablespace and Database File I/O
Activity. Date, Time, and Version Details. Monitoring the
Shared Pool. Tuning Oracle. Tuning init.ora. Setting
Tunable Parameters for OLTP Workloads. Setting Tunable
Parameters for DSS Workloads. Applying Other Tuning Tips.
Using Oracle with File Systems. Optimizing Oracle Load
Performance. Planning for Indexes. Using an SGA Larger Than
2 Gbytes. Reconfiguring Oracle9i Dynamically. Oracle9i
Dynamic System Global Area. How Oracle Chooses Between ISM
and DISM. The Benefits of Using Dynamic SGA. Recovering
Oracle. The Influence of Checkpoints on Recovery Time. The
Influence of Checkpoints on Performance. The
v$instance_recovery view. Other Parameters Influencing
Recovery.
23. Monitoring and Tuning Sybase. Sybase ASE Monitoring.
Sybase Central Monitor Output. Sybase sp_sysmon Stored
Procedure Output. Configuring Sybase ASE. Calculating the
Buffer Cache Hit Rate. Monitoring Error Messages.
Generating Query Plans. Tuning Sybase ASE. Tuning Memory.
Tuning I/O. Tuning the CPU. Tuning Parallel Features.
Tuning Other Aspects
24. Monitoring and Tuning Informix XPS. Informix XPS Monitoring.
Examining Informix Utilities. Changing Informix XPS Tunable
Parameters. Monitoring Error Messages. Generating Query
Plans. Monitoring Buffer Pool Behavior. Monitoring Scan
Type. Monitoring Queries. Tuning Informix XPS. Tuning
Parallel Features. Tuning Memory. Tuning I/O. Tuning CPU.
Tuning Log Buffers. Optimizing Load Performance. Tuning
Inter-Coserver Communication.
25. Monitoring and Tuning DB2 for Solaris. Monitoring DB2. Changing
DB2 Tunable Parameters. Monitoring Error Messages.
Generating an Explain Plan. Monitoring the Cost of SQL
Statements. Monitoring DB2 Processes. Managing Bufferpools.
Calculating the Cache Hit Rate. Tuning DB2 for Solaris for
DSS Workloads. Choosing a Partitioning Method. Choosing a
Page Size. Tuning I/O. Tuning Bufferpools. Tuning
Parameters That Influence the Optimizer. Tuning Other
Important Parameters. Tuning DB2 for Solaris for OLTP
Workloads. Choosing a Page Size. Tuning I/O. Tuning
Bufferpools. General Tuning Tips. Balancing Tablespace
Activity. Controlling Lock Activity. Configuring Agent
Processes. Limiting Open Files.
26. Metrics: How to Measure and What to
Report. Common Performance
Metrics. System Metrics. Application Metrics. Application
Instrumentation. System and Application Metrics Combined.
Choosing Statistics. Scalability Demystified. Lies, Damn
Lies, and Statistics. When the Same Thing Isn't. Comparison
of Methods. Interval Discrepancies. Data Collection and
Presentation Discrepancies. Conclusion and
Recommendations.
V. OTHER TOPICS.
27.
Benchmarking. Industry-Standard Database
Benchmarks. Usefulness of Database Benchmarks. Introduction
to TPC-C. Benefits of TPC-C. Limitations of TPC-C.
Introduction to TPC-D, TPC-R, and TPC-H. TPC-D. TPC-R.
TPC-H. Introduction to TPC-W. TPC Results in a Competitive
Environment. Running Your Own Benchmark. Reasons for
Running a Benchmark. Factors That Make a Benchmark
Meaningful. Parameters to be Measured. Benchmark
Requirements. Running the Benchmark. Competitive
Benchmarks. What Often Goes Wrong with Benchmarks?
Conclusion
28. Java Interfaces, Middleware, and
Databases. Java in the Database. Java
Interfaces to Databases. JDBC. SQLJ. J2EE Middleware. J2EE
Middleware Suppliers. The J2EE Framework. JavaServer Pages.
The Java Servlet API. XML. Enterprise JavaBeans. Importance
of J2EE to End Users. J2EE Availability. Other Related
Technologies. In Conclusion.
Appendix A: References.