Latest Posts

Triggers use the version store

Here’s one I stumbled across recently – I was monitoring tempdb space and could see some version store usage on a database that did not have snapshot or Read Committed Snapshot Isolation enabled, I was puzzled by this, but eventually found the answer. What is the Version Store? As a quick primer, the version store…

Keep reading

Physical Joins – Merge Join

In this series, we’ve been looking at the internals of physical joins – the operations SQL Server does behind the scenes to satisfy the logical joins written in our declarative T-SQL. So far, we’ve looked at nested loop joins and hash joins, and in this final post, we’ll look at the merge join. The Algorithm…

Keep reading

Physical Joins – Hash Join

In the previous post in this series, we looked at the nested loop operator which we saw was useful when there is a small set data and a second set of sorted data. In this post, we’ll look at what is often considered the workhorse of physical join operators – the hash join. The hash…

Keep reading

Physical Joins – Nested Loop

This post is the first in a short series about physical join types. What do I mean by physical join types? What we normally consider to be a join – INNER / [LEFT|RIGHT] OUTER / FULL join are logical join types, they are the joins we use to describe the query results in our declarative…

Keep reading

Understanding SQL Server Statistics

The next post in this short introductory series is about statistics in SQL Server – this isn’t an all-encompassing deep dive into the topic – the aim is to outline what statistics are, where and how SQL Server uses them, present a quick overview of an example statistic and an example of statistics at work.…

Keep reading

Understanding SQL Server Indexes

This post follows on from the previous two about execution plans in SQL Server, in those posts I covered what an execution plan is, what they tell us and why we might need to use them. Indexes are actually nothing at all to do with execution plans but when talking about one, you often end…

Keep reading

More on Execution Plans

In my previous post on execution plans we looked at what an execution plan is, how SQL Server creates them and why we might use them, now we’ll delve a little further. Recap We very briefly compared two SQL Server execution plans on two queries against the Stack Overflow 2010 database provided under cc-by-sa 4.0…

Keep reading

SQL Server Execution Plans Explained

In these articles, you will see me reference execution plans a lot – talk about them, provide screenshots etc. I assume that the reader has some level of knowledge about what an execution plan is, how to view them and how to understand them. This post is aimed at those readers who do not have…

Keep reading