What Is SQL Server 2019 Cumulative Update 4 and Should You Install It?
SQL Server 2019 Cumulative Update 4 (CU4) is a critical patch package released by Microsoft that addresses stability, correctness, and performance issues across multiple SQL Server components. If you're running SQL Server 2019 in production, you should install it. The fixes included in this update address real problems that can cause data corruption, memory leaks, server crashes, and incorrect query results - issues that no production environment can afford to ignore.
Keeping SQL Server patched isn't just good housekeeping. It's a fundamental part of responsible database administration. Unpatched instances accumulate known bugs, and over time those bugs compound into operational risk. CU4 for SQL Server 2019 is a good example of why staying current matters.
What Does SQL Server 2019 CU4 Fix?
Microsoft released CU4 as KB4583459, targeting SQL Server 2019 (build 15.0.4033.1). The update addresses dozens of individual bug fixes across several major functional areas. Here's a breakdown of the most operationally significant changes.
Scalar UDF Inlining Bugs
Scalar User-Defined Function (UDF) inlining was introduced in SQL Server 2019 as an Intelligent Query Processing feature. When it works correctly, it can dramatically improve query performance by transforming scalar UDFs into relational expressions that the query optimiser can reason about. When it doesn't work correctly, the consequences can be severe.
CU4 addresses two serious scalar UDF inlining defects. The first is a memory leak that occurs when inlined UDFs are executed repeatedly - in a busy OLTP environment, this kind of leak can gradually exhaust the buffer pool and cause unpredictable performance degradation. The second is an incorrect results bug, which is arguably worse. A query that returns wrong answers silently is more dangerous than a query that fails outright.
If your workload uses scalar UDFs and you've been seeing unexpected memory pressure or query result anomalies since upgrading to SQL Server 2019, CU4 should be a priority installation.
Performance Improvements
CU4 includes fixes for severe spinlock contention, which is a concurrency issue that causes threads to burn CPU cycles waiting for access to internal SQL Server data structures. Spinlock contention typically shows up as high CPU utilisation without a corresponding increase in useful work being done. It's one of those problems that's easy to misdiagnose as an application issue when it's actually a SQL Server engine defect.
The update also corrects statistics-related issues that were causing the query optimiser to generate poor execution plans. Inaccurate cardinality estimates lead to bad plan choices - wrong join types, inappropriate index usage, and memory grant miscalculations. CU4 specifically improves estimations for queries involving the UPPER, LOWER, and RTRIM string functions, which are commonly used in data cleansing and reporting workloads.
Crash and Stability Fixes
This is where CU4 earns its "install immediately" classification. Several crash scenarios are addressed:
- Querying persisted computed columns could cause an access violation and crash the SQL Server process
- Memory-optimised databases (In-Memory OLTP) were experiencing non-yielding scheduler conditions, which cause the server to appear hung and eventually trigger a failover or restart
- Change tracking auto cleanup failures were generating stack dumps, indicating unhandled exceptions in the cleanup process
- Background tasks were failing when session counts reached 32,767 (the 32K limit), which is a hard ceiling that busy systems can hit under load
Any one of these issues can cause an unplanned outage. The persisted computed column crash and the memory-optimised non-yielding scheduler are particularly dangerous because they can be triggered by routine query activity rather than edge-case operations.
Always On Availability Groups Fixes
Availability Groups received two important fixes in CU4. The first addresses a non-yielding scheduler condition specific to AG workloads, similar to the In-Memory OLTP issue described above. The second fixes a missing log block defect that was causing log rescan operations.
Log rescan is the process by which a secondary replica catches up after falling behind the primary. A missing log block in this process can cause the secondary to become permanently unsynchronised, which undermines the entire point of having an availability group. In environments using AGs for high availability or disaster recovery, this is a serious concern.
PolyBase Fixes
PolyBase, SQL Server's external data access feature, received several bug fixes addressing errors and stability issues. If your environment uses PolyBase to query external data sources such as Azure Blob Storage, Hadoop, or other SQL Server instances, these fixes are relevant to your operations.
How Do You Install SQL Server 2019 CU4?
Installing a cumulative update is straightforward, but it should always be done with a tested rollback plan in place. Here's the recommended process:
- Download the update package from the Microsoft Support article KB4583459
- Take a full backup of all user databases and the system databases (master, msdb, model)
- Verify your backup restoration process works - this is not optional
- Apply the update to a non-production instance first if your environment allows it
- Schedule a maintenance window for production - the SQL Server service will restart during installation
- Run the installer with administrative privileges on the SQL Server host
- After installation, confirm the build number by running
SELECT @@VERSION- you should see build 15.0.4033.1 - Review the SQL Server error log for any post-update issues
For environments with Availability Groups, apply the update to secondary replicas first, then fail over and patch the former primary. This approach minimises downtime.
-- Verify your SQL Server build number after installing CU4
SELECT @@VERSION AS [SQL Server Version];
-- You should see: Microsoft SQL Server 2019 (RTM-CU4) (KB4583459) - 15.0.4033.1
Why Was This Update Released So Quickly?
CU4 was released just 19 days after CU3, which is unusually fast even by Microsoft's standards. The accelerated release cadence at that time reflected the reality of development teams working remotely during the COVID-19 pandemic period. With fewer interruptions and in-office distractions, engineering teams were able to turn around fixes faster than normal.
That context is worth understanding because it tells you something about the nature of the bugs being fixed. These weren't obscure edge cases that took months to reproduce. Several of them were actively causing problems for customers in production, which drove the urgency of the release.
Should You Always Install the Latest Cumulative Update?
The short answer is yes, with appropriate testing. Microsoft's official guidance is to apply the latest cumulative update for your SQL Server version. Cumulative updates are thoroughly tested before release and are designed to be safe to apply in production environments.
The longer answer is that "install it" doesn't mean "install it right now without testing." A structured approach to patching means validating updates in a lower environment first, checking the list of fixes for anything that might affect your specific workload, and scheduling production deployment during a controlled maintenance window.
For most organisations, a patching lag of 30 to 60 days after a cumulative update release is reasonable. It allows time for the broader community to surface any unexpected issues while still keeping your environment reasonably current.
Key Takeaways
- SQL Server 2019 CU4 (KB4583459, build 15.0.4033.1) addresses critical stability, correctness, and performance issues that can affect production environments
- Scalar UDF inlining bugs fixed in this update include a memory leak and an incorrect results defect - both serious issues for OLTP workloads
- Crash fixes cover persisted computed columns, memory-optimised databases, change tracking cleanup, and high session count scenarios
- Always On Availability Group fixes address a log rescan defect that could leave secondary replicas permanently out of sync
- Follow a test-first, backup-verified approach when deploying cumulative updates to production SQL Server instances
Need Help Managing SQL Server Patching?
Staying current with SQL Server cumulative updates is one of the most effective things you can do to maintain a stable, secure database environment. But patching has to be done correctly - the right sequence for AG environments, proper backup verification, post-update validation, and monitoring for regressions.
DBA Services provides managed SQL Server support for Australian organisations, including structured patching programmes, health checks, and proactive monitoring. If your team doesn't have the bandwidth to manage SQL Server updates properly, or if you want an independent review of your current patch level and configuration, get in touch with our team.
Need help with your SQL Servers?
Find out what's really going on inside your SQL Server environment.
Our health checks uncover critical misconfigurations in 97% of reviews.