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 an update that fixes several vulnerabilities, for all modern versions, from SQL Server 2014 SP3 right on up to SQL Server 2022. Go get it!
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.
For T-SQL Tuesday #158, I talk about a couple of justifiable worst practices.
The story behind new SQLBlog-branded clothing (with proceeds going to The Trevor Project and Black Lives Matter).
I talk about some of the pivotal criteria guiding how Stack Overflow will migrate to Azure.
I recognize this year's recipient of my Community Influence of the Year award.
I talk about my foray into mentoring, and how you should mentor for a career, not just for a role.
In part 3, I show how to automate creating new tables, dropping old tables, and adjusting the view.
In part 2, I look at general strategies for partitioning an archive table (even without Enterprise!) to reduce long-term data movement.
For T-SQL Tuesday #156, I talk about the qualities I expect in T-SQL code before I consider it "production quality."
In this series, I look at strategies for archiving data and how it can impact your entire infrastructure.
For October's T-SQL Tuesday, Steve Jones asks us to talk about ways we've used dynamic SQL to solve problems.
SQL Server 2019 Cumulative Update #18 is available, with 26 enhancements. The build number is 15.0.4261.1.
SQL Server 2017 Cumulative Update #31 is available, with 24 enhancements. The build number is 14.0.3456.2. This is the last mainstream cumulative update for SQL Server 2017!
In this tip, I show how to simplify calculations involving nth weekday or non-weekday, with and without a calendar table.
For this month's T-SQL Tuesday, I talk about a not-quite-yet-announced feature in SQL Server 2022 that has the potential to function as a low-effort bad habit logger.
SQL Server 2019 Cumulative Update #17 is available, with 43 enhancements. The build number is 15.0.4249.2.
I look at DBA, DBRE, and SRE roles and share how they have differed in my experience.
I talk about ways to use wrapper functions to work around tedious syntax required by the new function, GENERATE_SERIES.
For this month's T-SQL Tuesday, I talk about the community event that had the most profound impact on my career and, more importantly, my life.
On the 10th anniversary of SQLPerformance.com, I look back on my favorite posts – one from each year.
For this month's T-SQL Tuesday, Deb Melkin asks us get up on our favorite soapbox. I have so many, but this time I picked a new one…
Logging tables can grow unchecked for years, and date range queries against them get more and more expensive if they don't use the clustered index. Read about one way I've mitigated this problem.