Operational Defect Database

BugZero found this defect 1308 days ago.

Microsoft SQL Server | 11952929

KB4163087 - FIX: Performance is slow for an Always On AG when you process a read query in SQL Server - Microsoft Support

Last update date:

7/19/2023

Affected products:

SQL Server 2016 Developer - duplicate (do not use)

SQL Server 2016 Enterprise - duplicate (do not use)

SQL Server 2016 Enterprise Core - duplicate (do not use)

SQL Server 2016 Standard - duplicate (do not use)

SQL Server 2017 on Windows (all editions)

Affected releases:

build lower than 14.0.3026.27

Fixed releases:

14.0.3026.27

Description:

Symptoms

Assume that you have an Always On Availability Group (AG) in SQL Server 2016 and 2017. When you process a read query on a secondary replica, the performance might be much slower than the primary replica due to frequent DIRTY_PAGE_TABLE_LOCK waits.

Cause

This issue occurs because of contention between the read query and the redo thread, and because the table is locked.

Resolution

This fix is included in the following updates for SQL Server: Cumulative Update 8 for SQL Server 2017  Cumulative Update 1 for SQL Server 2016 Service Pack 2 Cumulative Update 9 for SQL Server 2016 Service Pack 1

About SQL Server builds

Each new build for SQL Server contains all the hotfixes and security fixes that were in the previous build. We recommend that you install the latest build for your version of SQL Server: Latest cumulative update for SQL Server 2017 The latest build for SQL Server 2016

Workaround

To work around this issue you can use a single redo thread instead of a parallel redo thread by enabling Trace Flag 3459.

More Information

When read-only queries are running on a readable secondary replica, query threads attempt to apply pending log redo operations and need to collaborate with redo worker threads with DIRTY_PAGE_TABLE_LOCK waits, which can be frequently generated and slow down both redo and query performance if there are concurrent redo workloads. The performance issue associated with DIRTY_PAGE_TABLE_LOCK wait is addressed in the cumulative update release for SQL Server 2016 SP and SQL Server 2017 mentioned in this article. For more information, you can see the following blog on Availability group secondary replica redo model and performance.

Status

Microsoft has confirmed that this is a problem in the Microsoft products that are listed in the "Applies to" section.

References

Learn about the terminology Microsoft uses to describe software updates.

Additional Resources / Links

Share:

BugZero® Risk Score

What's this?

Coming soon

Status

Unavailable

Learn More

Search:

...