How Stale are my Statistics?
It can be pretty difficult to manage statistics in data warehouses, or even OLTP databases that have very large tables. This is because, even with auto_update_statistics turned on, SQL is pretty...
View ArticleJoin me at SQLBits for a Day of Index Design and Tuning
Wednesday, May 4, 2016 Liverpool Exhibition Centre One day session£349 until April 9, 2016. £399 thereafter — This training day has sold out! I will be presenting this session in a Training Day at the...
View Article3 Things I Wish I’d Learned Earlier as a SQL Server DBA
Back in my day, we used a courier for log shipping. Hindsight is everything. I was lucky to be trained by a great team of DBAs back when I first started with SQL Server. But it’s hard to know exactly...
View ArticleThe #1 Thing to Never Do to Fix a Performance Problem
Never, ever, disable backups to fix a performance problem. If you’re not having a performance crisis, you might look at that sentence and say, “Wow, that’s super dumb! Who would ever do that?” Well, a...
View ArticleWhy Table Partitioning Doesn’t Speed Up Query Performance (video)
Learn why SQL Server’s table partitioning feature doesn’t make your queries faster– and may even make them slower. In this 20 minute video, I’ll show you my favorite articles, bugs, and whitepapers...
View ArticleThe Case of the Blocking Merge Statement (LCK_M_RS_U locks)
Recently I got a fun question about an “upsert” pattern as a “Dear SQL DBA” question. The question is about TSQL, so it lent itself to being answered in a blog post where I can show repro code and...
View ArticleLost in Performance Troubleshooting – Kendra’s Perf Triage for SQL Server...
The SQL Server is slow, what should you do? I answer a reader question and share my strategy for performance troubleshooting. Note: This is a “listen-able” video. You can also listen to this as a...
View ArticleIndex Usage Stats Insanity – the oddities of sys.dm db index usage stats...
SQL Server’s “index usage stats” dynamic management view is incredibly useful– but does it tell you what you THINK it tells you? Kendra explains the quirks of how sys.dm_db_index_usage_stats works, as...
View ArticleIndex 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...
View ArticleWhich is Worse: an Unused Index, or an Un-Indexed Foreign Key? (Dear SQL DBA...
Should you always index your foreign keys? What if you index them, and then the index never gets used? Watch the 17 minute video, listen to the podcast, or read the episode notes and links below. Dear...
View ArticleShould I change the ‘locks’ configuration in SQL Server?
I recently got a fantastic question from a reader regarding lock usage in SQL Server. Here’s the question: One of my production databases has a total lock count around 25,000 (select count(*) from...
View ArticleWhy is My Query Faster the Second Time it Runs? (Dear SQL DBA Episode 23)
Today’s question is about why a query might be slow at first, then fast the next time you run it. Watch the 26 minute video or scroll on down and read the written version of the episode instead. If...
View ArticleHow to Tune Indexes for a Stored Procedure
You’ve got an important stored procedure that you think needs index help– but it runs in environment with lots of other queries. How do you focus in and discover exactly what indexes need tuning for...
View ArticleDoes Truncate Table Reset Statistics?
Short answer: the SQL Server optimizer will know that the table was truncated, but statistics might not update when you expect. For the long answer, let’s walk through an example using the...
View ArticleAdministering COTS databases (ISVs / Third Party Vendors)
I recently received this question from a reader… I just moved from an in-house software development company to a new environment that most of the software used here are COTS (Commercial off-the-shelf)...
View ArticleData Type Mismatches Don’t Always Cause a “Bad” Implicit Conversion and Index...
One of the reasons that I enjoy getting questions is that I can try to help others, and it helps me be lazy: I don’t have to think of blog topics myself. Here’s a great recent question that I got...
View ArticleTrace Flag 4199: No Per-Session Override if You Enable it Globally
You can enable and disable trace flags either globally or per-session in SQL Server. This makes it seem like perhaps if you enable optimization trace flag 4199 globally for all sessions, you might be...
View Article
More Pages to Explore .....