The Database Doctor
Musing about Databases

Tag: query‑planning

Cover image for TPC series - TPC-H Query 5 - Transitive Closure and Join Order Dependencies
TPC series - TPC-H Query 5 - Transitive Closure and Join Order Dependencies

Welcome back to the TPC-H analysis. If this is your first time, I highly recommend that you visit the previous blogs in the series first. They're here (and I look forward to seeing you in a...

Cover image for TPC series - TPC-H Query 4 - Semi Join and Uniqueness
TPC series - TPC-H Query 4 - Semi Join and Uniqueness

Today we are looking at a Q04 — which on the surface is similar to Q17. Like Q17, Q04 has a correlated subquery that can be de-correlated using a join. But sometimes, a regular INNER JOIN is...

Cover image for TPC-H series - TPC-H Query 3 - Join Ordering and Heap Sorting
TPC-H series - TPC-H Query 3 - Join Ordering and Heap Sorting

I want to teach you an important skill that will serve your well as a database specialist. One blog entry is not going to be enough, but here is my goal: When you look at an SQL query in the you...

Cover image for TPC series - TPC-H Query 2 and 17 - De-correlation
TPC series - TPC-H Query 2 and 17 - De-correlation

The great promise databases make to programmers is: "Tell me what you want and I will figure out the fastest way to do it." A database is a computer science engine — it knows and...

Cover image for Introducing the TPC series - TPC-H Query 1: Column Storage and Local Aggregation
Introducing the TPC series - TPC-H Query 1: Column Storage and Local Aggregation

After the wonderful feedback on the previous blog about Iceberg - it is now time to switch gears. Databases are more than row storage engines. They are algorithm machines, helping that...

TPC series - TPC-H Query 20 - Nested De-correlation

TPC series - TPC-H Query 7 - Bloom Filter Pushes

TPC series - TPC-H Query 9 - Composite Key Joins

TPC series - TPC-H Query 6 and Query 14 - Expression Optimisation

TODO TODO...

TPC series - TPC-H Query 16 - Anti Joins

Cover image for Databases are Just Loops - Row and Batch execution
Databases are Just Loops - Row and Batch execution

Our database journey makes a brief stop. We need to appreciate an important design decision every database must make: Should I use row or batch execution? Depending on the database - or...

Cover image for What is Cost in a Query Planner?
What is Cost in a Query Planner?

If you ever looked at query plan from a SQL databases - you are likely to have come into something called "cost". You may even have heard that most advanced database use based a...