Who is overriding MAXDOP 1 on the instance?

In Monday’s newsletter I discussed an email question I’d been sent and promised to blog about it. The question was “how can latch waits for ACCESS_METHODS_DATASET_PARENT occur when the instance MAXDOP is set to 1?” This shouldn’t happen, as that latch is only used for coordination between threads performing a parallel table/index scan. However, just […]

New course: Introduction to Query Store

Our first new course of the year, and our 50th online training course with Pluralsight!! Erin’s latest Pluralsight course has been published – SQL Server: Introduction to Query Store – and is just over three hours long. It’s based on her very popular user group and conference session, but much expanded with lots of cool demos. The modules are: Introduction […]

Survey results: Common causes of performance problems

A couple of week ago I kicked off a survey about common causes of performance problems – see here for the survey. Firstly I asked what was the root cause for the most recent performance problems you looked at – here are the results:   Secondly I asked what you think the overall most common […]

Query plan analysis first steps

About a month ago I kicked off a survey asking what you look for when first analyzing a plan for a poorly performing query. You can see the original survey here. Here are the survey results:   The "Other" values are as follows: 13 x "Most expensive as percentage of total cost of batch" 7 […]

Survey: what’s your plan for a plan?

In my survey for this week I'm interested in what you look for first when analyzing a query plan. I'll report on the results around mid-February. Thanks! PS Post comments are disabled to avoid skewing the results.

Two great blog series on joins and query plan operators

I was doing some research this morning for some query tuning on a client system and I came across a couple of blog series with some excellent posts for those looking to learn more about query plans (and as a handy reference). The first series is by Craig Freedman on the Query Processor team at […]

Adventures in query tuning: non-seekable WHERE clause expressions

I've been doing a lot of performance tuning work over the last couple of months and this weekend found something that's very pervasive out in the wild. Kimberly was helping me optimize a gnarly query plan and spotted something in the code I hadn't noticed that was causing an index scan instead of an index […]

Adventures in query tuning: unexpected key lookups

I'm starting a new blog category to talk about some of weird and confusing stuff I see while query tuning. First up is the case of the unexpected Key Lookup (Clustered) in a query that looks like it should be covered. This is a follow on from the post Missing index DMVs bug that could […]

Missing index DMVs bug that could cost your sanity…

Here's yet another reason to be very careful when using the missing index DMVs… There's a bug in the missing index DMVs that could end up causing you to knock your head against a brick wall and question your sanity. I know I did. The bug is this: the missing index code may recommend a nonclustered […]