Scaling Oracle8i Introduction (to a Great Book) Welcome! Preface Who Should Read This Book Credits Feedback Introduction How To Read This Book Chapter 1 Scaling Concepts What Is Scaling? Speedup Concurrency (Scaleup) Latches and Locks Why Lock? Things That Need Locking/Latching Waiting on Latches and Locks Design Considerations to Reduce Lock Contention Linked Lists What Is a Linked List? What Are Linked Lists Used For? Optimizing Chain Lengths Hashing What Is Hashing? Caching Cache Fundamentals Memory Hierarchies Cache Reference Patterns I/O Caching CPU Cache Concepts Chapter Summary Further Reading Chapter 2 Hardware Architectures and I/O Subsystems Introduction to Hardware Architectures System Interconnects Bus Architecture Direct Memory Access (DMA) Cache Coherency Single Processor Architectures (Uniprocessors) Advantages Oracle on Uniprocessors Other Disadvantages Summary Symmetric Multiprocessors (SMPs) SMP Advantages Kernel Challenges Oracle on SMP Architectures Shared-Bus Limitations Summary Point-to-Point SMP Cache Coherency Summary Clustered SMP Clustering Types Summary Massively Parallel Processors (MPPs) Definition Oracle on MPP Systems Summary Cache Coherent Nonuniform Memory Access (ccNUMA) Definition Sequent NUMA-Q 2000 SGI Origin 2000 Oracle on NUMA Systems Summary Storage Systems I/O Busses Controllers Disk Drives Disk Drive Sizing Redundancy RAID Levels RAID-5 Cached Disk Arrays: EMC Symmetrix Chapter Summary Further Reading Chapter 3 Benchmark Concepts and Design Why Develop a Benchmark? Capacity Planning Upgrades Platform Changes What Are We Simulating? Defining Application Areas Defining the Application Split Careful with Those Assumptions, Eugene Selecting a Development Approach Using Remote Terminal Emulation Software Custom Simulation Development Building a Simulator Using RTE Software Building a Custom Benchmark Suite Programming Environment When the Application Has Not Been Written If the Application Exists: Trap and Emulate All SQL Calls Using Tracefiles to Generate a Simulation: An Introduction to dbaman Validate Server-Side System Utilization Building a Multiuser Framework Scale the Simulator Data Problems User Control Problems Simpler Methods for Use with dbaman Make It Easy to Run Portability Packaging Start-Up Scripts Automating Information Retrieval at Closedown Define Limitations in Advance A Benchmark Is Never Perfect Measure the Impact of the Inaccuracies Chapter Summary Further Reading Chapter 4 System/Database Monitoring Why Monitor? Proactive Fault Detection Rapid Fault Diagnosis Historical Performance Records Low-Intrusion Techniques Go Easy on the System Avoiding Single-Threaded Resources Introduction to V$ Views What Are the V$ Views ? Accessing the V$ Views Structure of the V$ Views Overhead of Using V$ Views Minimizing Overhead Using dbaman to Optimize Data Collection Defining the Cursors Parsing and Executing the SQL Process the Result Sets Pulling it Together with a Main Loop Processing Statistics Data Transports Alarm Propagation Defining the "Flight Envelope" What Is a "Flight Envelope"? How Do I Define a Flight Envelope for the System? Using Excel Spreadsheets for Data Visualization Chapter Summary Chapter 5 Physical Oracle Introduction Overview Control Files Datafile Information Operating Information Redo Log Information Log History Backup Information The INIT.ORA File Rules for init.ora Creation Data Storage Overview: The Physical Picture Blocks: An Introduction Block Cleanout Redo Logfiles Key Database Objects Rollback Segments Read-Only Tablespaces Temporary Tablespaces and Temporary Segments Tables Indexes Other Database Objects The Data Dictionary Chapter Summary Further Reading Chapter 6 Oracle8 in Operation Introduction The Oracle Kernel Process Architecture Shadow Processes Net8 The SGA Components High-Level View Fixed Region Variable Region Buffer Cache Operation of the Buffer Cache Introduction Hash Chains LRU Chains Latch Coverage CR Versions DBWR Operation Flowchart Summary of Buffer Cache Operation Shared Pool Structure Shared Pool: The Library Cache Introduction Cursors The Parsing Mechanism Latch Coverage Other Memory Structures Dictionary Cache Log Buffer Oracle Parallel Server Concepts Introduction Distributed Lock Manager (DLM) Parallel Cache Management Design Considerations for OPS Summary Further Reading for OPS V$ Views Exposed Session-Level Information V$SESSION_EVENT System-Level Information Chapter Summary Further Reading Chapter 7 Introduction to UNIX What Is a Kernel? "That Picture" Execution Modes Explicit Kernel Processing (Process Context Kernel Mode) Implicit Kernel Processing (System Context Kernel Mode) Processes The Process "Table" Process Scheduling Signals Process Lifecycle Memory Management: The Virtual Memory System Introduction Virtual Memory Introduction Virtual Memory Hierarchy The Memory/Disk Hierarchy Implementing the Hierarchy Implications of fork() and exec() Summary I/O System Everything Is a File Filesystems Raw Disk Filesystems Versus Raw Disk Logical Volume Managers Interprocess Communication (IPC) Pipe Communication System V IPC More on System Calls Chapter Summary Further Reading Chapter 8 Oracle User's Guide to UNIX Coengineering the Oracle Kernel VOS Responsibilities Vendor Coengineering UNIX Tools top Tcl and expect Korn Shell awk Further Reading Chapter 9 Scalable Transaction Processing Scalable Applications Application Design Scalable SQL Transaction Processing Monitors Purge Tuning Transaction Processing Systems Goals for Tuning Where to Tune Tuning Modes Chapter Summary Further Reading Chapter 10 Pulling It All Together: A Case Study Introduction Engagement Overview The Business Perot Systems Corporation: The IT Partner The Application The Technical Solution Chapter Summary Chapter 11 Building a Successful Team Introduction Immediate Team Attributes Virtual Team Attributes Chapter Summary Chapter 12 Pitfalls Introduction Avoiding Bugs Initial Releases Known Problems Bug Diagnosis and Resolution Finding and Fixing Bugs Oracle Parallel Server Problems Chapter Summary Chapter 13 Internet Applications and the Future E-Commerce Systems The Implications The Implication for Business Computing Oracle8i Technology Java Integration New Data Services Future Oracle Releases Chapter Summary