Tag: Performance

  • Curse of the Catch-All query

    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…

    Keep reading

  • OR predicates and Indexes

    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…

    Keep reading

  • SQL Server – Working Smarter, Not Harder

    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…

    Keep reading

  • SQL Server – Working Smarter, Not Harder (Again)

    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…

    Keep reading

  • Don’t Miss a Beat: How Blocking Can Cause Unintended GETDATE() Behaviour

    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…

    Keep reading

  • Understanding SQL Server Statistics

    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

  • SQL Server Execution Plans Explained

    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

  • More on Execution Plans

    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

  • Understanding SQL Server Indexes

    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