I show an inline table-valued function to extract values from an integer encoded with days of the week.
I talk about some of the challenges and qualitative factors that influence how you add, remove, and change indexes.
I consolidate many bits of Docker advice that had previously been scattered across several different posts.
In this post, I talk about why it's so important to regularly test that your backups can be restored.
In the last part of the series, I show how I coordinate multiple parallel jobs… and what comes after them.
In part 3 of this series, I dig into some detail about how I further parallelized the work and reduced overall runtime.
In part 2, I show how I take advantage of snake draft order with a couple of real use cases.
In this four-part series, I borrow a concept from fantasy football to solve an optimization problem in a long-running weekly job in SQL Server.
I talk about a technique that can avoid expensive sorting to paginate by large string values.
In this post I talk about how to avoid losing valuable debugging information in the abyss and noise of SQL Server Agent's history.
I put together a few pointers about upgrading SQL Server, including /SkipRules, and avoiding the web installer.
For this month's T-SQL Tuesday, Brent Ozar asks about the last ticket we closed. I came close…
I talk about several things you can do to clean up after yourself and be a good RDP citizen.
If you're planning to roll forward your existing configuration file to SQL Server 2022, read this first.
Azure SQL Database got an update: A new locking model that might finally displace NOLOCK.
2023 was an interesting year for SQLblog.org – I talk about top posts and some changes I made here over the year.
I show how to use metadata to avoid costly reads when retrieving counts, even for a subset of the table.
This month, Kay Sauter encourages us to say thanks to those who helped us this year.
I talk about some rarely-used WAITFOR functionality that I use for testing.
While I've very rarely been jealous of Oracle, 23c added something I really want in SQL Server.
I discuss reasons you might think a data change was successful when it wasn't – or vice-versa.
I talk about the evolution of my thinking on featured images, and how I use generative AI for most post companions these days.
Bit columns can be tricky, and I discuss a few techniques for sanity and performance – including filtered indexes when skew is dramatic.
For this month's T-SQL Tuesday, Steve Jones asks us to talk about problems we've solved using window functions.
UNPIVOT works great when you're populating a single output column, but I talk about how CROSS APPLY can work better in more complex scenarios.
I discuss decisions and trade-offs when migrating Stack Overflow for Teams – first to a new cluster, and then to a new version of SQL Server.
I recognize this year's recipient of my Community Influencer of the Year award.
In this tip, I talk about checklists to keep everyone involved in a deployment or migration – regardless of technical acumen – on the same page.
I talk about an inefficient but common use case for DISTINCT: removing extra rows from joins.
Over a decade of posts and videos involving bad habits and best practices in SQL Server.
SQL Server has updates that fix several vulnerabilities, for all modern versions from 2014 SP3 through 2022.
In this tip, I talk about various reasons a query's performance can change over time – even when the application hasn't changed.
I talk about making a minor schema improvement to large log-type tables containing repeated strings.
I talk about how I use dynamic SQL to handle many databases with not-quite-identical schema.
I discuss my roller coaster of emotions since learning that SQL Server 2022 would support instant file initialization for log files.
In this tip, I take a quick look at some changes to Always Encrypted that make it easier to use.
I've long been pro-schema-prefix, but in this post I talk about an exception to the rule at Stack Overflow, and why it works well.
I show how GENERATE_SERIES makes for easier set building, and decent alternatives while you're still stuck on older versions.
While it might promote less than ideal practices, I show how to use a DDL trigger to keep views in sync with a volatile schema.
In the final part of this series, I convert my T-SQL code to MySQL, so you can build a fancy archives page in WordPress.
Certainly not to encourage people to stay on ancient versions if they don't have to, I took a crack at replicating TRY_PARSE on older versions.
I show that a new experimental feature in Docker 4.16+ lets you run "real" SQL Server on Apple M1+ chips.
For my first post on Simple Talk, I rip apart a made-up stored procedure as if I had encountered it during a code review.
In the second part of this series, I show how to use a calendar table to simplify rendering an archives page.
I recently added a switch and an adapter to take much better advantage of AT&T's 5-gig service.
A good round of updates for most modern versions of SQL Server, including the first cumulative update for SQL Server 2022.
I started a short series on building visual calendars, like those seen in the monthly archives page here.
I discuss an organization’s responsibility for protecting personal information.