What's in SQL Server 2019 Cumulative Update 5?

SQL Server 2019 Cumulative Update 5 (CU5) delivers fixes for several significant issues including scalar UDF inlining problems, recompilation blocking, TDE backup encryption behaviour, and a database corruption bug triggered by shrink operations. Released by Microsoft under KB4552255, it's a meaningful update, but it comes with an unusual caveat: a number of the included bug fixes have limited or missing KB documentation. That combination of important fixes and incomplete transparency warrants a careful approach before you deploy.

This article breaks down what's in CU5, which fixes matter most, and how to decide whether to install it now or wait for the dust to settle.


Why Cumulative Update Documentation Matters

Most DBAs understand that staying current with cumulative updates is good practice. Microsoft regularly backports security fixes and stability improvements through the CU channel, and falling behind means running with known bugs that have already been solved.

But documentation matters. When a bug fix ships without a corresponding KB article, you lose the ability to assess whether that fix applies to your environment, what the root cause was, and whether the fix itself introduces any regression risk. For routine low-severity fixes, that's manageable. For bugs described with phrases like "database corruption" or "false foreign key violation warnings on DELETE," limited documentation is a genuine concern.

CU5 has a few of both.


What Does SQL Server 2019 CU5 Fix?

Here's a breakdown of the notable fixes included in SQL Server 2019 Cumulative Update 5:

Scalar UDF Inlining Issues

Scalar UDF inlining was introduced in SQL Server 2019 as a way to automatically inline scalar user-defined functions into the calling query, eliminating the row-by-row execution overhead that has historically made scalar UDFs a performance problem. CU5 addresses bugs in this feature. If you've been running into unexpected query plan behaviour or performance regressions with scalar UDFs since upgrading to SQL Server 2019, this fix is directly relevant to your environment.

Blocking Caused by the Reduce Recompilations Feature

SQL Server 2019 introduced a feature designed to reduce unnecessary query recompilations, but under certain conditions it was causing blocking. Blocking from an internal optimisation feature is the kind of problem that's difficult to diagnose because it doesn't look like typical application-level contention. If you've seen unexplained blocking in your wait stats that doesn't trace back to obvious locking patterns, this fix is worth noting.

TDE Backup Encryption Setting Changes

Transparent Data Encryption (TDE) and backup encryption interact in ways that aren't always obvious. This fix addresses a scenario where the backup encryption setting was being changed unexpectedly in relation to TDE. For organisations with strict compliance requirements around encrypted backups, any unintended change to encryption behaviour is a serious issue. Review your backup jobs and verify encryption settings after applying this update.

Database Corruption Caused by Database Shrink

This is the most severe fix in the batch. A bug in the database shrink operation was capable of causing database corruption under specific conditions. Database shrink is already a controversial operation in production environments because of the fragmentation it causes, but corruption is a different category of risk entirely. If you've been running shrink operations on SQL Server 2019 instances without CU5, it's worth running DBCC CHECKDB on those databases to confirm integrity.

Accelerated Database Recovery (ADR) Improvements

ADR received further improvements in CU5. This feature, which dramatically reduces recovery time and enables instant rollback of long-running transactions, has been iteratively refined through successive cumulative updates. One important note: ADR is still not supported for databases using database mirroring. If you're running mirroring (rather than Always On Availability Groups), don't enable ADR.

DELETE Statements Generating False Foreign Key Violation Warnings

This is one of the fixes with limited documentation, which makes it harder to assess. A DELETE statement generating false warnings about foreign key violations could cause application errors even when the data operation is actually valid. The practical impact depends heavily on how your application handles these warnings, but it's the kind of bug that can cause significant confusion in troubleshooting.


Should You Install SQL Server 2019 CU5 Right Away?

The standard recommendation is to install cumulative updates promptly. Microsoft's own guidance supports this, and from an operational standpoint, running a known-buggy version of SQL Server because you're waiting for the "right time" to patch is a risk management problem, not a solution.

That said, CU5 has enough undocumented fixes that a short waiting period is defensible. The SQL Server community, including MVPs, independent DBAs, and enterprise users, tends to surface regression issues within one to two weeks of a major CU release. Monitoring community forums, the SQL Server releases blog, and feedback channels during that window gives you early warning if something goes wrong in common deployment scenarios.

A practical approach:

  1. Review the KB4552255 release notes and cross-reference any documented fixes against your known pain points.
  2. Deploy to a non-production environment first and run your standard workload for several days.
  3. Monitor wait stats, blocking reports, and error logs for anything anomalous.
  4. Check community forums after one to two weeks for any reported regressions.
  5. Deploy to production during a scheduled maintenance window with a tested rollback plan.

This isn't about being overly cautious. It's about applying standard change management discipline to a patch that has less documentation than usual.


What About the Undocumented Fixes?

Microsoft sometimes ships fixes in cumulative updates without full KB article coverage, particularly when the fix is for an internal or low-visibility issue, or when the documentation is still being prepared. That doesn't automatically mean the fix is dangerous, but it does mean you can't fully evaluate it.

The DELETE/foreign key warning issue is the one that stands out here. Without a KB article, you can't confirm the exact conditions that trigger the bug, what versions or configurations are affected, or whether the fix has any edge cases. If your applications do heavy DELETE operations against tables with foreign key relationships, test this scenario specifically in your non-production environment before deploying to production.


Checking Your SQL Server Version After Applying CU5

After applying SQL Server 2019 Cumulative Update 5, you can confirm the installed version with:

SELECT @@VERSION;

SQL Server 2019 CU5 corresponds to build number 15.0.4043.16. If your @@VERSION returns this build number, CU5 is successfully installed.

You can also query the sys.dm_os_host_info and sys.databases views to confirm your environment is operating normally post-update.


Key Takeaways

  • SQL Server 2019 CU5 fixes several high-impact issues including a database corruption bug in shrink operations, scalar UDF inlining problems, and unexpected blocking from the Reduce Recompilations feature.
  • The database shrink corruption fix is the most critical. If you've run shrink on SQL Server 2019 instances, run DBCC CHECKDB before and after applying CU5.
  • Some fixes in CU5 lack full KB documentation, which limits your ability to assess risk. A one to two week community observation period is a reasonable precaution before production deployment.
  • ADR improvements are included, but ADR remains unsupported for databases using database mirroring.
  • Always test cumulative updates in a non-production environment first and have a rollback plan ready.

Keeping SQL Server patched and healthy requires more than just applying updates when they appear. It means understanding what each update contains, how it interacts with your specific configuration, and whether your environment has been affected by the bugs being fixed.

If you're managing multiple SQL Server instances and don't have the time or resources to track every cumulative update in detail, DBA Services provides managed SQL Server support and regular health checks that include patch assessment, update planning, and post-deployment validation. Our team handles the analysis so your environment stays current without the guesswork.