As of May 16, 2019, there have been fifteen Cumulative Updates (CU) for the Service Pack 1 branch of SQL Server 2016. There have been a large number of hotfixes in each of these cumulative updates. If you are still running on the SQL Server 2016 SP1 branch (instead of moving to SP2), I really think you should be running the latest SQL Server 2016 SP1 Cumulative Update.
Table 1 shows the SQL Server 2016 SP1 CU builds that have been released so far:
Build | Description | Release Date |
13.0.4411 | SP1 CU1 | January 18, 2017 |
13.0.4422 | SP1 CU2 | March 20, 2017 |
13.0.4435 | SP1 CU3 | May 15, 2017 |
13.0.4446 | SP1 CU4 | August 8, 2017 |
13.0.4451 | SP1 CU5 | September 18, 2017 |
13.0.4457 | SP1 CU6 |
November 21, 2017 |
13.0.4466 | SP1 CU7 | January 4, 2018 |
13.0.4474 | SP1 CU8 | March 19, 2018 |
13.0.4502 | SP1 CU9 | May 30, 2018 |
13.0.4514 | SP1 CU10 | July 16, 2018 |
13.0.4528 | SP1 CU11 | September 17, 2018 |
13.0.4541 | SP1 CU12 | November 13, 2018 |
13.0.4550 | SP1 CU13 | January 23, 2019 |
13.0.4560 | SP1 CU14 | March 19, 2019 |
13.0.4574 | SP1 CU15 | May 16, 2019 |
Table 1: SQL Server 2016 SP1 CU Builds
You can follow the KB article link below to see all of the CU builds for the SQL Server 2016 RTM and SQL Server 2016 SP1 branches.
Like I have done for other versions and branches of SQL Server, I decided to scan the hotfix list for all of the Cumulative Updates in the SP1 branch, looking for performance and general reliability-related fixes for the SQL Server Database Engine. I came up with the list below, but this listing is completely arbitrary on my part. You may come up with a completely different list, based on what specific SQL Server 2016 features you are using.
Here are the fixes in the SP1 branch:
SQL Server 2016 SP1 Cumulative Update 1 (Build 13.0.4411), 54 total public hot fixes
FIX: The “sys.dm_db_column_store_row_group_physical_stats” query runs slowly on SQL Server 2016
FIX: An Always On secondary replica goes into a disconnecting state
FIX: A memory leak occurs when SQL Server procedure cache consumes too much memory
FIX: Out of memory occurs when you use long Hekaton transactions in SQL Server 2016
FIX: Error 3628 when you create or rebuild a columnstore index in SQL Server 2016
FIX: An access violation occurs when you execute DBCC CHECKDB on a database in SQL Server 2016
FIX: A dump file is generated when you enable system-versioning on a table in SQL Server 2016
An error occurs when you use ODBC driver to retrieve sql_variant data in SQL Server 2014 or 2016
SQL Server 2016 SP1 Cumulative Update 2 (Build 13.0.4422), 101 total public hot fixes
FIX: Memory leak when you query sys.dm_sql_referenced_entities view in SQL Server 2014 or 2016
FIX: Cannot insert data into a table that uses a clustered columnstore index in SQL Server 2016
FIX: Cannot install SQL Server R Services during an offline installation of SQL Server 2016 updates
Improvement: Enhance VDI Protocol with VDC_Complete command in SQL Server
FIX: Wrong number of rows returned in sys.partitions for Columnstore index in SQL Server 2016
FIX: Data type conversion error in a query that involves a column store index in SQL Server 2016
FIX: Deadlock causes deferred transaction on the secondary replica in an Always On environment
SQL Server crashes with an access violation when you use the TRY…CATCH construct for bulk copy
Update improves DMV sys.dm_server_services and sys.dm_os_sys_info in SQL Server 2016
FIX: A memory leak occurs when SQL Server procedure cache consumes too much memory
FIX: Assert memory dump on a mirror server in SQL Server
FIX: An access violation occurs when you execute DBCC CHECKDB on a database in SQL Server 2016
FIX: Queries that run against secondary databases always get recompiled in SQL Server
FIX: Error 3628 when you create or rebuild a columnstore index in SQL Server 2016
FIX: Significantly increased PAGELATCH_EX contentions in sys.sysobjvalues in SQL Server 2016
FIX: No automatic failover after database mirroring stops unexpectedly in SQL Server
SQL Server 2016 SP1 Cumulative Update 3 (Build 13.0.4435), 70 total public hot fixes
FIX: Error occurs when you drop a subscription by using a non-sysadmin account in SQL Server
FIX: SQL Server 2016 consumes more memory when columnstore index is reorganizeda>
Update enables DML query plan to scan query memory-optimized tables in parallel in SQL Server 2016
FIX: Wrong number of rows returned in sys.partitions for Columnstore index in SQL Server 2016
FIX: A memory leak in SQLWEP causes the host process Wmiprvse.exe to crash in SQL Server
FIX: Database schema is corrupted when you restore a database from a snapshot in SQL Server
SQL Server 2016 SP1 Cumulative Update 4 (Build 13.0.4446), 49 total public hot fixes
FIX: Deadlocks occur in SSISDB when you run multiple SSIS packages in SQL Server 2014 or 2016
FIX: Data mask on a floating points column is removed unexpectedly in SQL Server 2016
FIX: SUSER_SNAME function returns different result between SQL Server 2014 and SQL Server 2016
FIX: An access violation occurs when you create an index with page compression in SQL Server
FIX: Parallel query execution returns incorrect results for merge join operations in SQL Server 2016
FIX: Assertion failure when backing up large TDE encrypted database in SQL Server
FIX: Access violation occurs when you execute a query in SQL Server 2016
FIX: “EXCEPTION_INVALID_CRT_PARAMETER” error with BULK INSERT statement in SQL Server 2016
Update adds the “CLR strict security” feature to SQL Server 2016
FIX: Change Data Capture stops working after a recent cumulative update for SQL Server is installed
SQL Server 2016 SP1 Cumulative Update 5 (Build 13.0.4451), 44 total public hot fixes
FIX: Automatic seeding in Availability Groups randomly causes error 41169 in SQL Server 2016
FIX: Log chain break in the “managed_backup.fn_available_backups” table in SQL Server 2016
FIX: Database mirroring failover fails with error 3456 in SQL Server 2016
FIX: Backup of availability database via VSS-based application may fail in SQL Server 2016
FIX: Timeout when you back up a large database to URL in SQL Server 2014 or 2016
FIX: Memory use with many databases greater in SQL Server 2016 than earlier versions
FIX: Query that joins a view and contains UNION ALL slow in SQL Server 2016
FIX: SQL Server Managed Backups do not run a scheduled log backup in SQL Server 2016
SQL Server 2016 SP1 Cumulative Update 6 (Build 13.0.4457), 43 total public hot fixes
FIX: Memory use with many databases greater in SQL Server 2016 than earlier versions
FIX: Assertion occurs on accessing memory-optimized table through MARS
FIX: In-Memory database restore fails with errors in SQL server 2016
FIX: Access violation occurs when SQL Server 2016 tries to start Query Store Manager during startup
Hotfix: Alert Engine reads entire Application Event Log and sends aler
FIX: Access violation for DMV queries run against a distributed availability group in SQL Server
FIX: Distributed Transactions in an AG database fails after restarting in SQL Server 2016
FIX: DMV sys.dm_os_windows_info returns wrong values for Windows 10 and Windows server 2016
FIX: Data retrieval queries using non-clustered index seek take much longer in SQL Server
FIX: Access violation on primary replica of AlwaysOn AG in SQL Server 2016
FIX: Access violation for spatial datatypes query via linked server in SQL Server
FIX: Thread pool exhaustion and CMEMTHREAD contention in AAG with data seeding in SQL Server 2016
FIX: Errors 33111 and 3013 when you back up a TDE encrypted database in SQL Server
SQL Server 2016 SP1 Cumulative Update 7 (Build 13.0.4466), 23 total public hot fixes
FIX: Error when you rebuild a single partition of an index online in SQL Server 2014 and 2016
FIX: Heavy tempdb contention occurs in SQL Server 2016
SQL Server 2016 SP1 Cumulative Update 8 (Build 13.0.4474), 41 total public hot fixes
FIX: It takes a long time to restore a TDE encrypted database backup in SQL Server
Update to support partition elimination in query plans that have spatial indexes in SQL Server 2016
FIX: DMV sys.dm_os_windows_info returns wrong values for Windows 10 and Windows Server 2016
FIX: Intermittent 9004 error when a backup is restored via Standby Mode in SQL Server 2014
FIX: Heavy tempdb contention occurs in SQL Server 2016
FIX: Random access violations occur when you run monitoring stored procedure in SQL Server 2016
SQL Server 2016 SP1 Cumulative Update 9 (Build 13.0.4502), 25 total public hot fixes
PFS page round robin algorithm improvement in SQL Server 2016
FIX: Restore of a TDE compressed backup is unsuccessful when using the VDI client
FIX: Performance is slow for an Always On AG when you process a read query in SQL Server
FIX: Database cannot be dropped after its storage is disconnected and reconnected in SQL Server
FIX: TDE enabled database backup with compression causes database corruption in SQL Server 2016
SQL Server 2016 SP1 Cumulative Update 10 (Build 13.0.4514), 21 total public hot fixes
FIX: Parallel redo does not work after you disable Trace Flag 3459 in an instance of SQL Server
FIX: VSS backup fails in secondary replica of Basic Availability Groups in SQL Server 2016
FIX: Assertion error occurs when you add a database to an instance of SQL Server 2016
Transparent Data Encryption added for Log Shipping in SQL Server 2016 and 2017
FIX: Leakage of sensitive data occurs when you enable DDM function in SQL Server 2016 and 2017
FIX: Error 19432 when you use Always On Availability Groups in SQL Server
SQL Server 2016 SP1 Cumulative Update 11 (Build 13.0.4528), 8 total public hot fixes
FIX: A memory leak occurs in sqlwepxxx.dll causes the WmiPrvSe.exe process to crash
SQL Server 2016 SP1 Cumulative Update 12 (Build 13.0.4541), 16 total public hot fixes
FIX: Overestimations when using default Cardinality Estimator to query table with many null values
FIX: Access violation occurs in Distribution Agent in SQL Server 2016 and 2017
FIX: Assertion error occurs during restore of TDE compressed backups in SQL Server 2016
FIX: Peer-to-peer replication fails in SQL Server 2016 when the host name is not uppercase
FIX: Error 41168 occurs when you try to alter DAG SEEDING_MODE in SQL Server 2016
SQL Server 2016 SP1 Cumulative Update 13 (Build 13.0.4550), 9 total public hot fixes
SQL Server 2016 SP1 Cumulative Update 14 (Build 13.0.4560), 7 total public hot fixes
FIX: Intermittent failures when you back up to Azure storage from SQL Server 2014, 2016 and 2017
SQL Server 2016 SP1 Cumulative Update 15 (Build 13.0.4574), 7 total public hot fixes
FIX: Filtered index may be corrupted when you rebuild index in parallel in SQL Server 2014 and 2016
FIX: Log reader agent may fail after AG failover with TF 1448 enabled in SQL Server 2014 and 2016
The reason that I put these lists together is that I want to convince more people to try to keep their SQL Server instances up to date with Cumulative Updates. If you do the proper testing, planning and preparation, I think the risks from installing a SQL Server Cumulative Update are quite low (despite the occasional issues that people run into).
If you install a Cumulative Update or Service Pack on a Production system the day it is released, after doing no testing whatsoever, and then run into problems (and don’t have a plan on how to recover), then I don’t have that much sympathy for you.
On the other hand, if you go through a thoughtful and thorough testing process, and you have a plan for how you will install the CU, and how you would recover if there were any problems, then you are much less likely to have any problems. You are also much more likely to avoid the issues that are fixed by all of the included fixes in the new build of SQL Server. You have done your job as a good DBA.
Finally, Microsoft has changed their official guidance about whether you should install SQL Server Cumulative Updates. As they say, “we now recommend ongoing, proactive installation of CU’s as they become available”.