Measuring Query Duration: SSMS vs SQL Sentry Plan Explorer

Every query tuner wants to explain exactly how much faster we made a query. But sometimes SQL Server Management Studio adds noticeable overhead to the query duration. For relatively fast queries that return more than a few rows, just the overhead of displaying the results can skew your duration metric. Spoiler, for those short on time: […]


Index Tuning Decision Tree for SQL Server

I recently mapped out my thought process for how I approach a new instance of SQL Server when it comes to index tuning. It now looks like this: Highlight: Can I use Query Store? One of the first things I think about is whether the new 2016 Query Store option is available to collect query […]


Deadlock Code for the WideWorldImporters Sample Database

If you haven’t checked out Microsoft’s new WideWorldImporters sample database for 2016, it’s a pretty cool new little database. The database makes it easy to play around with new 2016 features, and it even ships with some cool little executables to run inserts in the “workload-drivers” folder. I recently put together some code to reproduce […]

Uniquely Portland

Unique Constraints vs Unique Indexes

Unique constraints and unique nonclustered indexes have a lot in common: unique constraints are implemented with a unique index behind the scenes. While unique nonclustered indexes have a couple of additional features, I can still think of a scenario where it might be best to use unique constraints. Unique Indexes: More flexible! 1. You can […]

Reading Query Plans

Estimated vs. Actual Number of Rows in Nested Loop Operators

This is one of those little details that confused me a ton when I was first working with execution plans. One problem with learning to work with plans is that there’s just SO MUCH to look at. And it’s a bit spread out. So, even when looking at a single tooltip, things can be confusing. Let’s […]


Finding Your Voice as a Speaker (Dear SQL DBA Episode 15)

Learn what it’s like to find and develop your voice as a technical speaker in this week’s episode of Dear SQL DBA. You can also listen to this episode in a podcast. This episode is a little more personal than most. Today, I’m going to answer a question that I’ve gotten five or six times in […]


Do Clustered Index Columns Count Against Max Nonclustered Key Size?

SQL Server 2016 and Azure SQL Database have a lot of little perks. One little thing that changed is that the maximum key size allowed for nonclustered indexes was raised from 900 bytes to 1700 bytes. Whoa! That’s room for a lot more key columns in there. Bring on the SSDs! Load up the memory! […]