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.
There have been many evolutions of how Microsoft accepts feedback about SQL Server.
I recognize this year's recipient of my Community Influence of the Year award.
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.
I open up a new MacBook Pro M1 Max and note a few of my initial observations.
I show how I turned a country buffet of cables and external storage into an almost wire-free workspace.
See the new overloaded STRING_SPLIT() function with its enable_ordinal parameter, now available in an Azure SQL Database near you.
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.
In the midst of job change announcements throughout the SQL Server community, I have a little announcement of my own.
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.
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.
In this tip, I use specific examples to counter assumptions that data types are always case insensitive.
I talk about using partition switching to load in fresh versions of staging tables with the least impact to users.
I made some landing pages here, with simple and easy-to-remember URLs, presenting sets of links to very frequently-discussed topics around SQL Server.
In this tip, I discuss one way to help avoid infinite loops in common while loop patterns.
In part 4, I show how to include ad hoc DML queries in the analysis.
In part 3, I tie it together and show how to use relational logic to further eliminate false positives.
For this month's T-SQL Tuesday, TJay Belt asks us to talk about how we manage work/life balance.
In part 2, I show how to identify problematic NOLOCK patterns across multiple databases and multiple instances.
I start a new series on identifying and removing problematic NOLOCK hints from update and delete statements.
In this tip, I show how to evaluate a new index option in SQL Server 2019 aimed at reducing PAGELATCH_EX waits.
For T-SQL Tuesday #140, Anthony Nocentino asks us what we have been up to with containers.
I explain why you should eliminate the data types text, ntext, and image from your environment.
After thinking setting up SQL Server 2019 on CentOS 7.5 was going to be a piece of cake, I explain how my team helped resolve a TLS issue preventing remote connections.
For the last part in my series on using a calendar table, and with some help from Itzik Ben-Gan, I describe how you can solve complex scheduling problems.
In this part of my "using a calendar table" series, I talk about filling gaps and identifying gaps and islands.
It seems a lifetime ago I wrote about creating a calendar table; now I've started a new series showing how to use the calendar table. In the first installment, I deal with business day problems.
A not exactly innovative post about using Temporal Tables functionality to automatically update a LastModified column.
I use a real-world example showing why you shouldn't use deprecated functionality like SQL Server Profiler.
For this month's T-SQL Tuesday, I talk about my two least favorite data types: money
and datetimeoffset
.
In this tip, I talk about cases where SQL Server will interpret YYYY-MM-DD as YYYY-DD-MM, which is less than optimal.
I talk about one scenario where the system table sys.sysprocesses
almost led us down the wrong path.
After seeing this question pop up on forums multiple times, I wrote a quick tip about enforcing unique constraints where order doesn't matter.
After a question on #sqlhelp, I dug into what could be making sys.partitions slow, and how they might get the required information in a more efficient way.
While I previously promoted a way to stop storing database name in your Extended Events sessions, there's an upside to collecting it: the ability to filter. Read on for more info.
For this month's T-SQL Tuesday I talk about a few distractions I enjoy when not slinging T-SQL.
I explain a recent case where sp_prepare came in handy: trying to validate a plan guide's impact.
I talk about a trade-off when using collect_database_name for DDL events captured by Extended Events.
I recognize this year's recipient of my Community Influence of the Year award.
This month's T-SQL Tuesday is about what we've learned from presenting. I give an embarrassing account about how I learned to be prepared and not go off script.
This month's T-SQL Tuesday is about how we are dealing with the madness that is 2020.
I recently came across an interesting issue with CHECKDB snapshots, as well as a bit of information missing from the documentation.