Translations: Deutsch | Français | Español | 日本語

SQL Performance Explained

A Book For Developers

SQL performance books are tomes.

Hundreds of pages filled with knowledge…
…not relevant to developers.

SQL Performance Explained focuses on what developers need to know.

Just 200 pages…
…yet covering all major databases.

(PayPal, global free shipping)


Paperback also available at

(paperback only, paid link)

Amazon Reviews

SQL Performance Explained enjoys a five star rating at and

“This is the best book on indexes that currently exists in the market” (Paul Barrett at

“Beginners will find it an easy read but even our most senior developer learned from it” (Amazon Customer at

“This book covers SQL in general but, importantly, makes it concrete by providing examples in *multiple* popular databases” (Sorpigal at

“The book isn’t even 200 pages long. […] A worse author would’ve made this book 1000 pages long.” (rewazi at

“An eye-opener on SQL performance” (Daniel Woods at

“A must have for all developers who deal with SQL!” (Henry Biney at

“Most useful book I’ve read, taking into account its size” (Sergey Gulik at

“I was struggling with a query that was taking about 1 minute, 30 seconds to execute. 43 pages in and it is now executing in 3 seconds” (Mr. B at

Table of Contents

  1. Preface

  2. Anatomy of an Index

    1. The Leaf Nodes

    2. The B-Tree

    3. Slow Indexes, Part I

  3. The Where Clause

    1. The Equals Operator

      1. Primary Keys

      2. Concatenated Keys

      3. Slow Indexes, Part II

    2. Functions

      1. Case-Insensitive Search

      2. User-Defined Functions

      3. Over-Indexing

    3. Bind Variables

    4. Searching for Ranges

      1. Greater, Less and BETWEEN

      2. Indexing LIKE Filters

      3. Index Combine

    5. Partial Indexes

    6. NULL in the Oracle Database

      1. NULL in Indexes

      2. NOT NULL Constraints

      3. Emulating Partial Indexes

    7. Obfuscated Conditions

      1. Dates

      2. Numeric Strings

      3. Combining Columns

      4. Smart Logic

      5. Math

  1. Testing and Scalability

    1. Data Volume

    2. System Load

    3. Response Time and Throughput

  2. The Join Operation

    1. Nested Loops

    2. Hash Join

    3. Sort-Merge Join

  3. Clustering Data

    1. Index Filter Predicates Intentionally Used

    2. Index-Only Scan

    3. Index-Organized Table

  4. Sorting and Grouping

    1. Indexed ORDER BY


    3. Indexed GROUP BY

  5. Partial Results

    1. Selecting Top-N Rows

    2. Fetching The Next Page

    3. Window-Functions

  6. Insert, Delete and Update

    1. Insert

    2. Delete

    3. Update

  7. Execution Plans

Database Professionals about SQL Performance Explained

“This book is definitively worth having in the company library” (Joe Celko on Celko helped write the SQL standard)

“This book is remarkably to-the-point, uses clever notation to illustrate the value distribution inside index pages, and is ripe with practical advice on index definition and usage in contemporary SQL.” (Torsten Grust, Datenbank Spektrum (2020))

Other Books referring to SQL Performance Explained

Troubleshooting Oracle Performance (2nd ed)(Christian Antognini)

Accelerating MATLAB Performance: 1001 tips to speed up MATLAB programs (Yair M. Altman)

Relational Database Design and Implementation(Jan L. Harrington)

High-Performance Java Persistence(Vlad Mihalcea)

More Reviews from the Web

“a great rhythm of slowly, bit by bit, building up queries and then looking at and explaining their execution plans” (Neil Sainsbury on his blog)

“This book has easily been one of the most influential on my career.” (mhotchen on Hacker News)

“A Rosetta stone for SQL query tuning.” (Sean Hull on his blog)

“SQL part of your work? Read SQL Performance Explained” (Honza Horak on his blog)

“The number of new questions you post to may drop significantly.” (Michał Kołodziejski on the Vertabelo blog)

“…a ton of useful information for developers…” (Denis Gobo on his blog)

“It was a pleasure for me to read SQL Performance Explained” (Dani Schnider on his blog)

“…best SQL related book I’ve read so far…” (Philip Riecks on his blog)

“Only tech book in the last few years that I read cover to cover!” (Bernd Haug on Twitter)

“I wish I had read this book a long time ago” (Andrew Cooke on his blog)

“Oh I really love it and I learned so many things in one week!” (Andrew Marcinkevičius on his blog)

“A wonderful book…I highly recommend it.” (Anders Janmyr on his blog)

“It is a short book … I personally love this - because the author has focused on what is important…” (Morgan Tocker on his blog)

“If you haven’t read it yet, order it right now! You won’t be disappointed” (Petri Kainulainen on his blog)

“Markus’s book helped me understand so so much about the Postgres database and what I was doing wrong.” (Louise Grandjonc in an interview by citusdata)

Bought the PDF Before?

If you have bought the PDF edition of SQL Performance Explained before, you can download it again. You’ll get an e-mail with a link to the latest and greatest version.

About The Author

Markus Winand is an independent author, trainer and consultant on all things SQL. His book “SQL Performance Explained” has just been translated into a fifth language. It can be purchased as a print edition, and it’s also available to read for free on his website. Markus is currently working on his second book centered on the idea that things have changed a lot since SQL-92. It is likewise available free of charge online ( Find his offerings for companies and developers at

Connect with Markus Winand

Markus Winand on LinkedInMarkus Winand on XINGMarkus Winand on Twitter