A recent Visual Studio outage has been largely blamed on the cardinality estimator, but I think the query itself has a share of the blame.
I describe a few different causes for a symptom you might describe as a "runaway" query in SQL Server.
As part of a new series, I take a look at what happens to the structure of a page when an INT column needs to be upsized to a BIGINT.
I compare the performance of different UDFs and raw queries used for splitting and reassembling a delimited string.
I discuss a few counterpoints to a very thorough and useful post on database naming standards.
I revisit an older post about SQL Server pagination to see if any implementation of ColumnStore indexes can improve performance.
A hefty introduction to common table expressions (CTEs).
I've stopped supporting ancient versions of SQL Server, and you should, too. I've cleaned up a lot of old, no longer relevant information.
I reveal details about the changes to Availability Groups that will ship in SQL Server 2016.
I highlight a handful of Connect items aimed at improving SQL Server showplan diagnostics and query tuning in general.
I walk through a solution that allows you to achieve some of the benefits of partitioning, without the Enterprise Edition price tag.
I share a few of the queries I use to quickly hone in on changes that have been implemented between SQL Server CTPs.
I list out the changes to In-Memory OLTP ("Hekaton") that will make the feature even more appealing in SQL Server 2016.
Tip : Phase out CONTEXT_INFO() in SQL Server 2016 with SESSION_CONTEXT()
I highlight three Connect items that will address some pretty important shortcomings in SQL Server statistics.
For this T-SQL Tuesday, I treat some of the most memorable data modeling sins from over the years.
I show some interesting maintenance opportunities for Service Broker queues available in SQL Server 2016.
I talk about new arguments to SERVERPROPERTY() that make @@VERSION even more obsolete (and changes that make @@VERSION problematic).
I show how to map all of those CONVERT style numbers to specific formats.
I show the most efficient way to return a grouped running MAX or MIN.
In this tip, I dynamically generate msiexec /x
commands to use when add/remove programs fails.
I explain how SQL Server 2016 improves tempdb configuration and performance.
Tip : Search all string columns in all SQL Server databases
I add a few tidbits to follow up on a popular post on default cursor options in SQL Server.
Tip : SQL Server 2016 Row Level Security Limitations, Performance and Troubleshooting
Tip : Understand the Limitations of SQL Server Dynamic Data Masking
I follow up on Always Encrypted posts from T-SQL Tuesday with improved code and more information on performance and space usage.
Tip : Identify Candidate Tables for Stretch Databases
I investigate the observable overhead involved with using a new SQL Server 2016 security feature, Always Encrypted.
For this T-SQL Tuesday, I talk about a few of the limitations of Always Encrypted.
I discuss a couple of potential problems that can occur when you are inconsistent about case sensitivity.
These two things stop me in my tracks whenever I try to install SQL Server on a new VM.
Tip : Prepare for an Upgrade with the SQL Server 2016 Upgrade Advisor
I suggest a different approach to providing more data about service packs and cumulative updates than messing with @@VERSION.
I look at the tempting All Features With Defaults installation choice for this T-SQL Tuesday.
I share the settings file for the dark theme I use for presentations in SQL Server Management Studio (SSMS).
I compare multiple date formatting techniques, demonstrating again that FORMAT() is not worth the convenience.
A new feature introduces function statistics very similar to what we've had for procedures for ages.
For T-SQL Tuesday #67, I describe a new way to track backup and restore operations using Extended Events in SQL Server 2016.
I take a quick look at a couple of things you should be careful about when calling natively-compiled Hekaton stored procedures in SQL Server 2014.
Tip : Protecting Yourself from SQL Injection in SQL Server – Part 2