Relational Database Index Design and the Optimizers (Hardcover)

Relational Database Index Design and the Optimizers (Hardcover)

作者: Tapio Lahdenmaki Mike Leach
出版社: Wiley
出版在: 2005-07-01
ISBN-13: 9780471719991
ISBN-10: 0471719994
裝訂格式: Hardcover
總頁數: 328 頁





內容描述


Description:
The
most common reason for performance problems with database applications is
inadequate indexing.This book covers index design, one aspect of database
tuning. It will teach the reader how to improve the performance of relational
databases (IBM DB2, Oracle, Microsoft SQL Server and others) with indexes
designed for current hardware (gigabytes of central storage, large disk drives
with RAID 5, etc...).Other common reasons are poor table design, SQL
optimizer and long lock waits, all covered in this book. This is a very
important topic for database specialists and application developers but most
database product manuals and books cover indexing very briefly - perhaps
because index design issues are not product specific. Unlike table design,
index design can be relatively easily improved while the application is
already in production.

 
Table of Contents:
Preface.

  1. Introduction.
    Another Book About SQL Performance!
    Inadequate Indexing.
    Myths and Misconceptions.
  2. Table and Index Organization.

Introduction.
Index Rows.
Index Structure.
Table Row.
Buffer Pools and Disk I/Os.
Hardware Specifics.
DBMS Specifics.

  1. SQL Processing.
    Introduction.
    Predicates.
    Optimizers and Access Paths.
    Filter Factors.
    Materializing the Result Rows.
    Exercises.
  2. Deriving the Ideal Index for a
    SELECT.
    Introduction.
    Basic Assumptions for Disk and CPU Times.
    Inadequate Index.
    Three-Star Index—The Ideal Index for a SELECT.

Algorithm to Derive the Best Index for a SELECT.

Ideal Index for Every SELECT?
Cost of an Additional Index.
Recommendation.
Exercises.

  1. Proactive Index Design.

Detection of Inadequate Indexing.
Basic Question (BQ).
Quick Upper-Bound Estimate (QUBD).
Cheapest Adequate Index or Best Possible Index:
Example 1.
Cheapest Adequate Index or Best Possible Index:
Example 2.
When to Use the QUBE.

  1. Factors Affecting the Index Design
    Process.
    I/O Time Estimate Verification.
    Multiple Thin Index Slices.
    Difficult Predicates.
    Filter Factor Pitfall.
    Filter Factor Pitfall Example.
    Exercises.
  2. Reactive Index Design.

Introduction.
EXPLAIN Describes the Selected Access Paths.

Monitoring Reveals the Reality.
LRT-Level Exception Monitoring.
Call-Level Exception Monitoring.
DBMS-Specific Monitoring Issues.
Exercises.

  1. Indexing for Table Joins.

Introduction.
Two Simple Joins.
Impact of Table Access Order on Index Design.

Basic Joint Question (BJQ).
Predicting the Table Access Order.
Merge Scan Joins and Hash Joins.
Nested-Loop Joins Versus MS/HJ and Ideal Indexes.

Joining More Than Two Tables.
Why Joins Often Perform Poorly.
Designing Indexes for Subqueries.
Designing Indexes for Unions.
Table Design Considerations.
Exercises.

  1. Star Join Considerations.

Introduction.
Indexes on Dimension tables.
Huge Impact of the Table Access Order.
Indexes on Fact Tables.
Summary Tables.

  1. Multiple Index Access.

Introduction.
Index ANDing.
Index ORing.
Index Join.
Exercises.

  1. Indexes and Reorganization.

Physical Structure of a B-Tree Index.
How the DBMS Finds an Index Row.
What Happens When a Row IS Inserted?
Are Leaf Page Splits Serious?
When Should an Index Be reorganized?
Volatile Index Columns.
Long Index Rows.
Example: Order-Sensitive Batch Job.
Table Rows Stored in Leaf Pages.
Cost of Index Reorganization.
Split Monitoring.
Summary.

  1. DBMS-Specific Indexing
    Restrictions.
    Introduction.
    Number of Index Columns,
    Total Length of the Index Columns.
    Variable-Length Columns.
    Number of Indexes per Table.
    Maximum Index Size.
    Index Locking.
    Index Row Suppression.
    DBMS Index Creation Examples.
  2. DBMS-Specific Indexing Options.

Introduction.
Index Row Suppression.
Additional Index Columns After the Index Key.

Constraints to Enforce Uniqueness.
DBMS Able to Read an Index in Both Directions.

Index Key Truncation.
Function-Based Indexes.
Index Skip Scan.
Block Indexes.
Data-Partitioned Secondary Indexes.
Exercises.

  1. Optimizers Are Not Perfect.

Introduction.
Optimizers Do Not Always See the Best
Alternative.
Optimizers’ Cost Estimates May Be Very Wrong.

Cost Estimate Formulas.
Do Optimizer Problems Affect Index Design?

Exercises.

  1. Additional Estimation
    Considerations.
    Assumptions Behind the QUBE Formula.
    Nonleaf Index Pages in Memory.
    When the Actual Response Time Can Be Much Shorter
    Than the QUBE.
    Estimating CPU Time (CQUBE).
    CPU Estimation Examples.
  2. Organizing the Index Design
    Process.
    Introduction.
    Computer-Assisted Index Design.
    Nine Steps Toward Excellent Indexes.
    References.
    Glossary.
    Index.



相關書籍

Using SQLite (Paperback)

作者 Jay A. Kreibich

2005-07-01

Pro SQL Server 2019 Wait Statistics: A Practical Guide to Analyzing Performance in SQL Server

作者 Van De Laar Enrico

2005-07-01

SQL Queries for Mere Mortals: A Hands-On Guide to Data Manipulation in SQL (4th Edition)

作者 John L. Viescas

2005-07-01