Note This issue exists in versions of SQL Server that are older than SQL Server 2012. Fixes for other versions will be released later.
In versions earlier than SQL Server 2012, a request that obtains an 8-kilobyte (KB) database page upgrades to a 64-KB I/O request. Therefore, you have to fetch more pages from disk to the buffer pool in fewer I/O requests.
In SQL Server 2012 and SQL Server 2014, the 8-KB database pages are fetched from disk to the buffer pool by using individual 8-KB I/O requests. Therefore, you find the I/O system is saturated with too many 8-KB I/O requests.
Cumulative Update informationAfter you apply the cumulative update, you will notice that the read-ahead requests for single 8KB database pages upgrade to 64 KB I/O requests.
The issue was first fixed in the following cumulative update of SQL Server.
- Cumulative Update 11 for SQL Server 2014
- Cumulative Update 4 for SQL Server 2014 SP1
- Cumulative Update 9 for SQL Server 2012 SP2
- The same problem exists in SQL Server 2012 and SQL Server 2014 for log shipping secondary servers. However, this Cumulative Update doesn't address the problem for log shipping scenarios.
- This problem doesn't exist in SQL Server 2012 and SQL Server 2014 for Always-On Availability Group secondary replicas.
- This Cumulative Update only fixes excessive read requests that occur on the mirror server. If you encounter excessive write requests on the mirror server, you can consider using Trace Flag 3499 to avoid writes to database pages for every change that's applied to the database page.