Minimizing impact of widening an IDENTITY column – part 1
A problem that I have seen crop up a few times recently is the scenario where you have created an IDENTITY column as an INT, and now are nearing the upper bound and need to make it larger (BIGINT). If...
View ArticleMinimizing impact of widening an IDENTITY column – part 2
In the first part of this series, I showed what happens to a physical page when changing an IDENTITY column from an int to a bigint. To keep things simple, I created a very simple heap with no indexes...
View ArticleMinimizing impact of widening an IDENTITY column – part 3
So far in this series, I have demonstrated the direct physical impact to the page when upsizing from int to bigint, and then iterated through several of the common blockers to this operation. In this...
View ArticlePerformance Surprises and Assumptions : SET NOCOUNT ON
If you've ever used Management Studio, this output message will probably familiar: (1 row(s) affected) This comes from SQL Server's DONE_IN_PROC message, which is sent at the successful completion of...
View ArticleBad cardinality estimates from SSMS plans – redux
Over three years ago now, I posted about a fix to Plan Explorer regarding bad cardinality estimates that SQL Server's Showplan XML was producing, in the case of key/RID lookups with a filter predicate...
View ArticleInstant File Initialization : Impact During Setup
Recently, Erin Stellato (@erinstellato) blogged about the performance impact Instant File Initialization (IFI) can have when creating or restoring databases. She explains that SQL Server 2016 setup now...
View ArticlePerformance Surprises and Assumptions : STRING_SPLIT
Over three years ago now, I posted a three-part series on splitting strings: Split strings the right way – or the next best way Splitting Strings : A Follow-Up Splitting Strings : Now with less T-SQL...
View ArticlePerformance Surprises and Assumptions : DATEADD()
Back in 2013, I wrote about a bug in the optimizer where the 2nd and 3rd arguments to DATEDIFF() can be swapped – which can lead to incorrect row count estimates and, in turn, poor execution plan...
View ArticleSTRING_SPLIT() in SQL Server 2016 : Follow-Up #1
A few weeks ago, I wrote about how surprised I was at the performance of a new native function in SQL Server 2016, STRING_SPLIT(): Performance Surprises and Assumptions : STRING_SPLIT() After the post...
View ArticleSTRING_SPLIT() in SQL Server 2016 : Follow-Up #2
Earlier this week, I posted a follow-up to my my recent post about STRING_SPLIT() in SQL Server 2016, addressing several comments left on the post and/or sent to me directly: STRING_SPLIT() in SQL...
View ArticlePaying Attention to Estimates
Last week I published a post called #BackToBasics : DATEFROMPARTS(), where I showed how to use this 2012+ function for cleaner, sargable date range queries. I used it to demonstrate that if you use an...
View ArticleMinimizing impact of widening an IDENTITY column – part 4
In part 3 of this series, I showed two workarounds to avoid widening an IDENTITY column – one that simply buys you time, and another that abandons IDENTITY altogether. The former prevents you from...
View ArticlePattern Matching : More Fun When I Was a Kid
Growing up, I loved games that tested memory and pattern matching skills. Several of my friends had Simon, while I had a knock-off called Einstein. Others had an Atari Touch Me, which even back then I...
View ArticlePlan Explorer 3.0 Webinar – Samples and Q & A
Last Friday, I gave a webinar about Plan Explorer 3.0, the new features, and why we decided to eliminate the PRO edition and give away all the features for free. If you missed it, you can watch the...
View ArticleSQL Sentry is now SentryOne
As part of our effort to simplify and consolidate our offering, we have changed our platform name to SentryOne. All of our products will be under the SentryOne Platform, with the exception of the free,...
View ArticleCan comments hamper stored procedure performance?
Every once in a while, a conversation crops up where people are convinced that comments either do or don't have an impact on performance. In general, I will say that, no, comments do not impact...
View ArticleA Big Deal : SQL Server 2016 Service Pack 1
Well, I can't claim that you heard it here first, since it was announced today by Scott Guthrie (@ScottGu) at Connect(); // 2016 and also on the SQL Server team blog, but SQL Server 2016 Service Pack 1...
View ArticleMemory Limits in SQL Server 2016 SP1
A few weeks ago, I made a pretty big deal about SQL Server 2016 Service Pack 1. Many features previously reserved for Enterprise Edition were unleashed to lower editions, and I was ecstatic to learn...
View ArticleSQL Server v.Next : STRING_AGG() performance
While SQL Server on Linux has stolen almost all of the headlines about v.Next, there are some other interesting advancements coming in the next version of our favorite database platform. On the T-SQL...
View ArticleSQL Server v.Next : STRING_AGG Performance, Part 2
Last week, I made a couple of quick performance comparisons, pitting the new STRING_AGG() function against the traditional FOR XML PATH approach I've used for ages. I tested both undefined/arbitrary...
View Article