Live classes start in 21d 02h 53m — Save your seat

Author: Kendra Little

My goal is for you to understand your SQL Server’s behavior– and learn how to change it. When I’m not figuring out the solutions to your database problems, you’ll find me at user group meetings in Portland, Oregon. I also love to draw.
Performance Tuning

RECOMPILE Hints and Execution Plan Caching

When you identify that parameter sniffing is a problem, you need to test whether implementing 'recompile' hints will help plan quality. (Not sure what parameter sniffing is? Learn from this blog post or this 50 minute free video.) You must decide: what hint or command do you use, and where do you put it? What trade-offs are you making when it comes to being able to performance tune your SQL Server in the future?

Read more about RECOMPILE Hints and Execution Plan Caching 35 comments — Join the discussion

Introduction to SQL Server Failover Clusters (video)

You’d love to know how to make your SQL Servers more highly available, but you’re just not sure what “clustering” is all about. We can help! In this 30 minute video Kendra Little shows you how failover clusters make your SQL Servers easier to manage. She uses diagrams and drawings to teach you the strengths and weaknesses of failover clusters and shows why clustering is becoming even more critical for high availability and disaster recovery.

Read more about Introduction to SQL Server Failover Clusters (video) 55 comments — Join the discussion

What?! Queries are Failing in My SQL Server?

I came across an interesting case recently where queries were failing in a high transaction SQL Server. We knew that queries were occasionally failing with error severity 20 because SQL Server Agent alerts were periodically firing. However, those built in alerts don't capture exactly what has failed-- they just say "Something failed big. Good luck with that."

Read more about What?! Queries are Failing in My SQL Server? 43 comments — Join the discussion
Performance Tuning

Trivial Optimization and Missing Indexes in SQL Server

Recently, Jes asked the team an index tuning question: "If a query has an index hint in it, will the optimizer ever suggest a missing index for that query?"

I immediately loved the question because I'd never really thought about it before. I typically think of index hints as being a very risky game and avoid them whenever I can-- after all if someone drops the index you've hinted, any query hinting a non-existent index will start to fail. (That's a really bad day!)

Read more about Trivial Optimization and Missing Indexes in SQL Server 7 comments — Join the discussion
Performance Tuning

How to Find ‘Secret Columns’ in Nonclustered Indexes

sp_BlitzIndex® just can't keep a secret. That's a feature, not a bug. I wrote sp_BlitzIndex® specifically so that it would rat out some things that SQL Server is doing behind the scenes to secretly help you out-- because it's really better if you know about it. What are secret columns? SQL Server needs a unique…

Read more about How to Find ‘Secret Columns’ in Nonclustered Indexes 21 comments — Join the discussion
Performance Tuning

Optimize for… Mediocre?

Some query hints sound too good to be true. And, unfortunately, usually they aren't quite as magical as they might seem.
Frustration with unpredictable execution times
People often learn about parameter sniffing when query execution times stop being predictable. Occasionally you'll hear about a stored procedure taking much longer than normal, but the next time you look, it might be faster.

Read more about Optimize for… Mediocre? 36 comments — Join the discussion
Performance Tuning

The Index Your Queries will Never Request (A Clustered Index!)

When it comes to indexes, SQL Server is really helpful. It lets you see what indexes queries are asking for both in execution plans, and missing index dynamic management views ("DMVs"). I like to look at the DMV missing index requests using sp_BlitzIndex®.

When you look at missing index requests, it's always important to remember one of the biggest things: these missing index requests won't ever ask for or recommend a specific clustered index.

Read more about The Index Your Queries will Never Request (A Clustered Index!) 3 comments — Join the discussion

An Introduction to SQL Server IO for Developers (video)

Developers frequently make a big mistake: they tune out on discussions of storage performance and IO. Don't fall into this trap! Understanding how storage impacts SQL Server performance helps you tune the right parts of your code and focus on what really matters. In this 30 minute video, Microsoft Certified Master Kendra Little demonstrates why developers need to understand the IO impact on writes and reads in SQL Server. She'll show you how simple configuration changes can sometimes save hundreds of hours of developer time.

Read more about An Introduction to SQL Server IO for Developers (video) 2 comments — Join the discussion

Best Practices + Table Partitioning: Merging Boundary Points

One of the many best practices for SQL Server's table partitioning feature is to create "extra" empty partitions around your data. This is explained in SQL Server Books Online in the page on altering a Partition Function: Always keep empty partitions at both ends of the partition range to guarantee that the partition split (before…

Read more about Best Practices + Table Partitioning: Merging Boundary Points Be the first to comment

SQL Server Table Partitioning Tutorial: Videos and Scripts

There's a secret to learning about SQL Server's table partitioning feature: you need to get your hands on some code and really play with it in a test environment.

In this tutorial, Kendra will walk you through test scripts that set up a sample table partitioning environment. These scripts demonstrate gotchas to look out for and the cool features that can dramatically change your database's performance.

Read more about SQL Server Table Partitioning Tutorial: Videos and Scripts 70 comments — Join the discussion