Chapter 3. Viewing and Interpreting Execution Plans
3.1 Reading Oracle Execution Plans
3.2 Reading DB2 Execution Plans
3.3 Reading SQL Server Execution Plans
Chapter 4. Controlling Execution Plans
4.1 Universal Techniques for Controlling Plans
4.2 Controlling Plans on Oracle
4.4 Controlling Plans on SQL Server
Chapter 5. Diagramming Simple SQL Queries
5.3 Interpreting Query Diagrams
5.5 Exercises (See Section A.1 for the solution to each exercise.)
Chapter 6. Deducing the Best Execution Plan
6.2 Standard Heuristic Join Order
6.6 Special Rules for Special Cases
6.7 Exercise (See Section A.2 for the solution to the exercise.)
Chapter 7. Diagramming and Tuning Complex SQL Queries
7.4 Queries with Set Operations
7.5 Exercise (See Section A.3 for the solution to the exercise.)
Chapter 8. Why the Diagramming Method Works
8.2 Choosing the Driving Table
8.3 Choosing the Next Table to Join
9.2 Merged Join and Filter Indexes
Chapter 10. Outside-the-Box Solutions to Seemingly Unsolvable Problems
10.1 When Very Fast Is Not Fast Enough
10.2 Queries that Return Data from Too Many Rows
10.3 Tuned Queries that Return Few Rows, Slowly
Appendix A. Exercise Solutions
A.1 Chapter 5 Exercise Solutions
A.2 Chapter 6 Exercise Solution
A.3 Chapter 7 Exercise Solution
Appendix B. The Full Process, End to End
B.1 Reducing the Query to a Query Diagram
B.3 Checking the Execution Plans
B.4 Altering the Database to Enable the Best Plan
B.5 Altering the SQL to Enable the Best Plan
B.7 Putting the Example in Perspective