Categories
T-SQL Tuesday

T-SQL Tuesday #169 – Giving Thanks

This month’s invitation from Kay asks us to look back through the year and consider those who we are thankful for. Whilst I should be thanking those close to me for their ongoing support through a lot this year – the fact of it is that they aren’t the type of folks to be reading a blog about SQL […]

Categories
SQL

Optimising Sort Operators in Window Functions

We’re on quite a roll with window functions these past few weeks. Last week we looked at the operators we’d see in execution plans when using a window function. This week I wanted to tackle one of the more troublesome ones specifically: the Sort operator. We know that sort operators are expensive in our queries. To use […]

Categories
SQL

Anatomy of a Window Function Execution Plan

After last week’s post I got to thinking that although we’ve looked at how to implement window functions, we haven’t peeked under the hood to see how they are executed. Then what do you know, Kevin has picked up my post to provide an alternative approach. He observed that whilst his approach was more straightforward it produced a more […]

Categories
SQL

Mixing Grouping and Window Functions

We revisited window functions last week for T-SQL Tuesday. As we’re in that area there’s another example I thought was worth exploring. Can we group data whilst applying window functions in the same query? The problem For our example we’ll use the same sample data as last week. This contains sales values broken down by period, also […]

Categories
T-SQL Tuesday

T-SQL Tuesday #168 – Mature Window Functions

This month’s invitation from Steve asks us to about how window functions have made life easier for us. Before we get into that let’s have a brief recap of what window functions are for those who aren’t familiar. What are they? Window functions are like regular functions we’d use in a result set such as SUM() or MIN() but more […]

Categories
SQL

Removing the Shackles on Parallelism

Our SQL Server environments are home to many workloads. In these situations one size doesn’t always fit all when it comes to configuration. Let’s take an example. On one hand we want small, high performance, transactional processing during the day. Through the evening this could change to larger, batch processing tasks. I’ve seen the configuration […]

Categories
SQL

Deeper into Concurrency Contention

We’ve recently looked at how single threaded concurrency was handled in SQL Server and followed up last time by diving into multithreaded concurrency. This time we’re going to go a bit further with the multithreading to look more into how the contention is handled when the number of cores available doesn’t line up with our workload. We’ll also […]

Categories
SQL Server

Multithreaded Concurrency Essentials

Recently we looked at single threaded concurrency in SQL Server for workloads which only need a single core to execute. We saw how they ran at the same time with the queries effectively being round-robined on the CPU. This time out I wanted to look at how the concurrency looks when we’re working with multithreaded workloads. Setting […]

Categories
Misc

Markdown Cheat Sheet

If you haven’t seen or used Markdown before, it’s a simple way to annotate plain text in a way which indicates formatting by using specific characters. This means that you can format your text as you’re typing rather than scrolling through countless options in a visual editor such as Word. Personally I find markdown so […]

Categories
Misc

Partial Highlighting in Notepad++

Productivity is a core component of our day to day jobs in and around code. Part of that comes from the tools we use and a common one would be Notepad++ thanks to all of its handy features and plugins to extend it. One of the simplest out of the box features is the ability […]