
Archive:
- September 2026 (1)
- August 2026 (8)
- July 2026 (8)
- June 2026 (7)
- May 2026 (7)
Search site:
Tags:
Compilation (1) Concurrency (3) debian (2) docker (2) Execution Plans (6) Indexes (2) internals (11) linux (5) Optimization (6) Parameterization (1) Performance (9) Performance Tuning (2) postgres (6) RCSI (2) sql (1) SQL Server (24) Statistics (2) Stored Procedures (1) Transactions (1) Version Store (2)
Categories:
Docker (2) Linux (4) MongoDB (1) PostgreSQL (6) SQL Server (24)
Tag: Performance
-
Curse of the Catch-All query

The catch-all query – a fairly common pattern that is often seen in SQL Server apps where there is a list of results that can be filtered by one or more criteria. This usually takes the form of a stored procedure that is constructed as below. The example stored procedure is created in the Stack…
-
OR predicates and Indexes

In this post, we will look at how SQL Server accesses indexes when an OR predicate is used. For this demo, I am going to use the Stack Overflow Database. I am using the large 2024 version provided under cc-by-sa 4.0 licence from Stack Exchange Data Dump and running in compatibility level 160 on a…
-
SQL Server – Working Smarter, Not Harder

Back in my university days, a lecturer of mine would say how programmers are experts in “creative laziness” He was referring to practices such as using methods and classes in C# – constructs that mean as a developer, you follow the DRY (Don’t Repeat Yourself) ethos – you are saving yourself time by writing things…
-
SQL Server – Working Smarter, Not Harder (Again)

In the last post we talked about the concept of creative laziness and how SQL Server’s query optimizer notices when the user has asked for something that requires no actual work due to a logical contradiction. In this post, we’ll look at another example of where the optimizer works smarter not harder and can reduce…
-
Don’t Miss a Beat: How Blocking Can Cause Unintended GETDATE() Behaviour

I was working on some SQL Server code recently which needed to check if an event that is logged to a table has completed and perform an action if it had. The way I looked to implement this was to run an agent job every 5 minutes to see if an event had occurred in…
-
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.…
-
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…
-
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…
-
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…