In this tip I confirm that FORMAT is still a dog compared to even very complex expressions using CONCAT_WS, DATENAME, DATEPART, and CONVERT.
Category: SQL Server
I was honored to be a guest on the most recent Mixed Extents podcast, along with my friend and colleague Andy Mallon, where we talked about patching SQL Server.
I harassed Erik Ejlskov Jensen enough to make me a universal command-line version of SqlQueryStress, and walk you through setting up a performance test between an Intel and M1 MacBook.
SQL Server 2019 Cumulative Update #15 is available, with 39 enhancements (35 public). The build number is 15.0.4198.2.
In this tip I show how indirect checkpoints can help improve performance and stability of more than just checkpoint operations themselves, and stifle some (but not all) problems. I conclude that you should proactively change this setting everywhere.
I show how I set up Azure SQL Edge in a Docker container on the new M1 MacBook.
See one way to use a queue table to spread out spiky, ad hoc deletes from a clustered columnstore index.
These functions aren't brand new, but they're in Azure SQL Database and Azure SQL Managed Instance, and they're coming to SQL Server 2022 soon.
SQL Server 2019 Cumulative Update #14 is available, with 38 enhancements (19 public). The build number is 15.0.4188.2.
See the new overloaded STRING_SPLIT() function with its enable_ordinal parameter, now available in an Azure SQL Database near you.
Every time I write a post about splitting strings, I promise myself it's the last one. I need to stop making that promise. In this tip, I show how I compared my previous favorite ordered splitting function to a different technique using OPENJSON().
I show one way to run arbitrary SQL against objects in an arbitrary database – using nested dynamic SQL.
Using PowerShell calling nested dynamic SQL that drives a cursor, I show one way to collect information about queries with index hints both in the plan cache and in stored procedures, views, and other modules.
There are two fixes in this hotfix update package, involving FileTable and Change Tracking.
After seeing multiple people switch from STRING_SPLIT() to OPENJSON() to deal with multiple parameters, I decided to explore whether that is a change in the wrong direction.
I talk about NULLs in SQL Server, the logical issues with avoiding them, and potential performance impacts.
Updated this stored procedure I wrote a decade ago to search for a string in procedure bodies, object names, job steps, and more…
I talk a bit about bit columns: names with negative context, allowing NULLs, and using cryptic BITWISE operators instead of readable, self-documenting expressions.
For this month's T-SQL Tuesday, I talk about the scripts I use to keep a local system with all kinds of oddball metadata scenarios.
SQL Server 2019 Cumulative Update #13 is available, with 38 enhancements (19 public). The build number is 15.0.4178.1.
In this tip, I use specific examples to counter assumptions that data types are always case insensitive.