Books & Videos

Table of Contents

  1. Chapter 1 Laying Plans

    1. The Relational View of Data

    2. The Importance of Being Normal

    3. To Be or Not to Be, or to Be Null

    4. Qualifying Boolean Columns

    5. Understanding Subtypes

    6. Stating the Obvious

    7. The Dangers of Excess Flexibility

    8. The Difficulties of Historical Data

    9. Design and Performance

    10. Processing Flow

    11. Centralizing Your Data

    12. System Complexity

    13. The Completed Plans

  2. Chapter 2 Waging War

    1. Query Identification

    2. Stable Database Connections

    3. Strategy Before Tactics

    4. Problem Definition Before Solution

    5. Stable Database Schema

    6. Operations Against Actual Data

    7. Set Processing in SQL

    8. Action-Packed SQL Statements

    9. Profitable Database Accesses

    10. Closeness to the DBMS Kernel

    11. Doing Only What Is Required

    12. SQL Statements Mirror Business Logic

    13. Program Logic into Queries

    14. Multiple Updates at Once

    15. Careful Use of User-Written Functions

    16. Succinct SQL

    17. Offensive Coding with SQL

    18. Discerning Use of Exceptions

  3. Chapter 3 Tactical Dispositions

    1. The Identification of "Entry Points"

    2. Indexes and Content Lists

    3. Making Indexes Work

    4. Indexes with Functions and Conversions

    5. Indexes and Foreign Keys

    6. Multiple Indexing of the Same Columns

    7. System-Generated Keys

    8. Variability of Index Accesses

  4. Chapter 4 Maneuvering

    1. The Nature of SQL

    2. Five Factors Governing the Art of SQL

    3. Filtering

  5. Chapter 5 Terrain

    1. Structural Types

    2. The Conflicting Goals

    3. Considering Indexes as Data Repositories

    4. Forcing Row Ordering

    5. Automatically Grouping Data

    6. The Double-Edged Sword of Partitioning

    7. Partitioning and Data Distribution

    8. The Best Way to Partition Data

    9. Pre-Joining Tables

    10. Holy Simplicity

  6. Chapter 6 The Nine Situations

    1. Small Result Set, Direct Specific Criteria

    2. Small Result Set, Indirect Criteria

    3. Small Intersection of Broad Criteria

    4. Small Intersection, Indirect Broad Criteria

    5. Large Result Set

    6. Self-Joins on One Table

    7. Result Set Obtained by Aggregation

    8. Simple or Range Searching on Dates

    9. Result Set Predicated on Absence of Data

  7. Chapter 7 Variations in Tactics

    1. Tree Structures

    2. Representing Trees in an SQL Database

    3. Practical Implementation of Trees

    4. Walking a Tree with SQL

    5. Aggregating Values from Trees

  8. Chapter 8 Weaknesses and Strengths

    1. Deceiving Criteria

    2. Abstract Layers

    3. Distributed Systems

    4. Dynamically Defined Search Criteria

  9. Chapter 9 Multiple Fronts

    1. The Database Engine as a Service Provider

    2. Concurrent Data Changes

  10. Chapter 10 Assembly of Forces

    1. Increasing Volumes

    2. Data Warehousing

  11. Chapter 11 Stratagems

    1. Turning Data Around

    2. Querying with a Variable in List

    3. Aggregating by Range (Bands)

    4. Superseding a General Case

    5. Selecting Rows That Match Several Items in a List

    6. Finding the Best Match

    7. Optimizer Directives

  12. Chapter 12 Employment of Spies

    1. The Database Is Slow

    2. The Components of Server Load

    3. Defining Good Performance

    4. Thinking in Business Tasks

    5. Execution Plans

    6. Using Execution Plans Properly

    7. What Really Matters?

  1. PHOTO CREDITS

  2. About the Author