• Database Crash Recovery Takes Forever After Planned Manual Failover

    Weekend Patching, Business As Usual Today I was patching a bunch of servers at a client as Microsoft released their most recent Security Patch for SQL Server that addresses an exploit / vulnerability found after patch Tuesday. Read more on it here. I went through the normal patching routine for an AG; working through all…


  • Tempdb Transaction Log Full and Can’t Connect to SQL Server

    Problem Ran into an interesting one today. I’ve seen countless occurrences of tempdb filling up due to rogue queries that are poorly optimized. Today was the first time I’ve seen a full transaction log for tempdb result in me not being able to connect to the SQL instance at all. Normal troubleshooting and intervention would…


  • Read-Only Routing Isn’t Working, What Gives?

    Problem You want to implement read-only routing for your Always on Availability Group so your reading workloads can be offloaded from your primary replica to one of your secondary replicas. But when it comes time to test, your reading queries aren’t hitting your readable secondary replicas like you expected. What gives? Here are some things…


  • What’s New in SQL Server 2025: Understanding max ucs send boxcars for Always On Performance

    I’ve been doing some major learning and deep-dives lately on SQL Server Always On Availability Groups, and with SQL Server 2025 now being in preview, it immediately sparked my interest to see if any new features relating to Always On were going to be available. You can find the full list here, but one feature…


  • Navigating SQL Server 2022 CLR Restrictions: A Step-by-Step Guide to Signing Assemblies with a Public-Private Key Pair

    SQL Server 2022 introduces several enhancements to improve the security and performance of CLR (Common Language Runtime) assemblies. While these updates, like CLR Strict Security, make SQL Server safer by default, they can also complicate workflows for developers accustomed to older versions. One key change is the requirement for assemblies to be signed with a…


  • ChatGPT Series Part 7: SQL Server Backup and Restore Strategies to Ensure Data Integrity

    We’re ending our ChatGPT series with a DBA essential; backups and restores. As a DBA, it is our responsibility to ensure that data is protected and recoverable in the event of an emergency. The best way to do this is through taking frequent backups of your data. However, just taking backups is not enough. Throughout…


  • ChatGPT Series Part 6: SQL Server Replication – Overview, Types, and Implementation

    The next installation of our ChatGPT series where ChatGPT gives me topics to blog about; everybody’s favorite topic – replication. In this post, we’ll cover the overview of replication, different types, and how to implement each type. Hopefully this can be your one-stop-shop for guidance on replication implementation. Overview of Replication Replication is a very…


  • ChatGPT Series Part 5: Troubleshooting Common SQL Server Issues – A Step-By-Step Guide

    Next stop on the ChatGPT series brings us to common problems we see in SQL Server as DBAs. In this career, there are some common issues we tend to see; slowness, deadlocks, performance bottlenecks, blocking, connection errors, and much more. The goal of this post is to act as a high level guide on how…


  • ChatGPT Series Part 4: Automating SQL Server Tasks with PowerShell

    Welcome to part 4 of the ChatGPT series: Automation with PowerShell (PS). PowerShell can be a polarizing tool—people tend to either love it or feel overwhelmed by it. I remember feeling quite intimidated when I first started learning it. However, rest assured, you don’t need to be an expert programmer or scripter to begin leveraging…


  • ChatGPT Series Part 3: Understanding SQL Server High Availability and Disaster Recovery Options

    Part 3 in the ChatGPT series where ChatGPT gives me topics to blog about; High Availability and Disaster Recovery (HADR) options. There are several options SQL Server offers to keep your databases both highly available, and redundant in the event of a disaster. The three I’d like to chat about today are: Always on Availability…


  • ChatGPT Series Part 2: How to Secure Your SQL Server Database – Best Practices

    Continuing on with our ChatGPT series, where I asked ChatGPT to give me seven blog post ideas, we’ll talk about some best practices when it comes to securing your databases in SQL Server. Where to Begin? There are a lot of angles you could come from when talking about best practices. I’m starting to realize…


  • ChatGPT Series Part 1: Essential SQL Server Performance Tuning Tips for DBAs

    With the popularity and use cases of AI growing these days, I thought it would be fun to leverage ChatGPT for blog post ideas. This is part one of a seven part series (one post per day) where I blog about the topics ChatGPT gives me. The Importance of Performance Tuning I like to think…


  • How to Set up Replication in an Always On Availability Group

    Replication can be a daunting technology to work with at times. Combine that with Always on Availability Groups (AAGs) and you may find yourself in a head scratcher of a situation. When deploying replication on a standalone server, it is not uncommon to see that same server act as a local distributor, meaning the distribution…


  • Backup Your TDE Certificates with sp_BackupTDECert

    If you’ve read my blog post about encrypting your databases with sp_EncryptDatabase, then you’ll definitely want to learn more about my procedure I created called sp_BackupTDECert. Arguably speaking, backing up your Transparent Data Encryption certificates is just as important as creating the certificates in the first place. When you encrypt your data, the certificate used…


  • Encrypting Data at Rest with sp_EncryptDatabase

    What it is So, I’m in a phase right now where I am creating stored procedures to make my life easier. There’s nothing more DBA than having canned scripts to get something done. I thought to myself “Why have something boring where you have to highlight one part, execute, highlight another part, execute, etc… I…


  • Log Shipping Made Easy with PowerShell and Dbatools

    Diversify your Toolbelt As a DBA, it is important to know more than one way to skin a cat. With all of the options out there to setup and cutover log shipping, for me, PowerShell and the use of the open source dbatools module has come in handy to seamlessly setup and cutover log shipping…


  • How to Remove and Add a Single Article from Replication

    The Scenario You get a request from the business to remove a single table (article) from a publication because a large amount of development work has to be done against that object. Because of the large size of the publication, you need to figure out a way to remove, then add back the impacted article…