Blogs

Joins, Predicates, and Statistics in SQL Server

Joins can be tricky. And where you put your ‘where’ clause may mean more than you think! Take these two queries from the AdventureWorksDW sample database. The queries are both looking for data where SalesTerritoryCountry = ‘NA’ and they have the same joins, but the first query has a predicate on SalesTerritoryCountry while the second has a predicate on SalesTerritoryKey. /* Query 1: Predicate on SalesTerritoryCountry */ select ProductKey, OrderDateKey, DueDateKey, ShipDateKey, CustomerKey, PromotionKey, CurrencyKey, fis.

Continue reading

Actual Number of Rows Read in SQL Server Execution Plans

Execution plans got a cool new piece of diagnostic information in SQL Server 2012 SP3, SQL Server 2014 SP2, and SQL Server 2016: “Number of Rows Read”. In fancy language, this is “better diagnostics” when a query plan has “residual predicate pushdown” (KB 3107397).

Continue reading

Does OPTION (RECOMPILE) Prevent Query Store from Saving an Execution Plan?

Recompile hints have been tough to love in SQL Server for a long time. Sometimes it’s very tempting to use these hints to tell the optimizer to generate a fresh execution plan for a query, but there can be downsides.

Continue reading

My SQLPASS 2015 Session Evaluations

I recently gave a day long session at the SQLPASS Summit called “SQL Server Index Therapy Session”. 61 people attended, and let me tell you I was thrilled with that number. I’ve co-presented lots of day and week long sessions, but this was the first day long session that I’d ever done solo at a conference and 61 people was a terrific number.

Continue reading

Did My Query Eliminate Table Partitions in SQL Server?

Working with table partitioning can be puzzling. Table partitioning isn’t always a slam dunk for performance: heavy testing is needed. But even getting started with the testing can be a bit tricky!

Here’s a (relatively) simple example that walks you through setting up a partitioned table, running a query, and checking if it was able to get partition elimination.

Continue reading

Resources for Learning Python

I’ve been thinking about taking up a new programming language as a hobby for a little while. There’s a vibrant software community here in Portland, and working in more languages than TSQL opens up lots more opportunities for fun. I have no intention of becoming a full-time Python programmer, I just believe it’s fun to code and good to challenge your brain in new ways.

Continue reading

Are You a Woman in Tech Working with SQL Server? Join the SQLWIT Slack Channel!

Update Nov 2021: This slack channel has been inactive for a bit of time now.

Are you a woman in technology that works with SQL Server or other databases? You might like to join our new slack channel - sqlwit.slack.com.

Continue reading

Taking the time to write about something makes you learn more

You know how sometimes you learn something, then you start to see it everywhere you look?

Continue reading