Configuring and Tuning Databases on the Solaris Platform
Using this book, database professionals can dramatically improve the performance and cost-effectiveness of virtually any database application running on the Solaris (R) platform. Solaris database optimization specialist Allan Packer presents start-to-finish guidance on optimizing all four leading Solaris databases: Oracle, DB2, Sybase, and Informix. Configuring and Tuning Databases on the Solaris Platform brings together best-practice guidelines for every aspect of database tuning on Sun servers. Drawing on years of expertise as a Sun consultant, Packer presents detailed recommendations for data layout, CPU and memory configuration, and system sizing. He introduces a systematic, drill-down monitoring approach designed to help database professionals identify and resolve system bottlenecks that inhibit database performance. Packer demystifies database tuning by providing a quick primer that explains database architecture, key database concepts, and how to use key subsystems such as query optimizers and buffer cache. He describes and critiques each leading database benchmark, offering guidance for using benchmarks -- and not misusing them.
- Paperback | 552 pages
- 177.8 x 231.14 x 35.56mm | 884.5g
- 06 Dec 2001
- Pearson Education (US)
- Prentice Hall
- Upper Saddle River, United States
- w. figs.
Back cover copy
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 sizingIdentifying and resolving bottlenecks: a systematic, drill-down monitoring approachUnderstanding 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 designContains a quick primer on database architecture and concepts
About Allan N. Packer
ALLAN PACKER is a Senior Staff Engineer with the Performance and Availability Engineering Group at Sun Microsystems. He has developed workloads for performance and regression testing, led the engineering team working with IBM DB2, acted as technical lead for nine published TPC benchmark results, and developed a training curriculum for the internal training organization focused on configuring, monitoring and tuning database systems. He currently specializes in server systems performance and availability.
Table of contents
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 Aspects24. 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? Conclusion28. 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.