sqlskills-logo-2015-white.png

Performance and Stability Related Fixes in Post-SQL Server 2014 SP2 Builds

As of July 29, 2019, there have been eighteen Cumulative Updates (CU) for the Service Pack 2 branch of SQL Server 2014. There have been a large number of hotfixes in most of these cumulative updates. SP2 CU18 is the final CU for SQL Server 2014 SP2, since SQL Server 2014 fell out of Mainstream Support on July 9, 2019.

If you are running on the SQL Server 2014 SP2 branch, I really think you should be running the latest SQL Server 2014 SP2 Cumulative Update.  In fact, if you are on SQL Server 2014, you should actually be on the SP3 branch, on the final CU, which is SP3 CU4.

Table 1 shows the SQL Server 2014 SP2 CU builds that have been released.

Build Description Release Date
12.0.5511 SP2 CU1 August 25, 2016
12.0.5522 SP2 CU2 October 17, 2016
12.0.5538 SP2 CU3 December 19, 2016
12.0.5540 SP2 CU4 February 21, 2017
12.0.5546 SP2 CU5 April 17, 2017
12.0.5553 SP2 CU6 July 17, 2017
12.0.5556 SP2 CU7 August 28, 2017
12.0.5557 SP2 CU8 October 16, 2017
12.0.5563 SP2 CU9 December 18, 2017
12.0.5571 SP2 CU10 January 16, 2018
12.0.5579 SP2 CU11 March 19, 2018
12.0.5589 SP2 CU12 June 18, 2018
12.0.5590 SP2 CU13 August 27, 2018
12.0.5600 SP2 CU14 October 15, 2018
12.0.5605 SP2 CU15 December 12, 2018
12.0.5626 SP2 CU16 February 19, 2019
12.0.5632 SP2 CU17 April 16, 2019
12.0.5687 SP2 CU18 July 29, 2019
     

Table 1: SQL Server 2014 SP2 CU Builds

You can follow the KB article link below to see all of the CU builds for the SQL Server 2014 RTM, SQL Server 2014 SP1, SQL Server 2014 SP2, and SQL Server 2014 SP3 branches.

SQL Server 2014 Build Versions

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 SP2 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 2014 features you are using.

Here are the fixes in the SP2 branch:

SQL Server 2014 SP2 Cumulative Update 1 (Build 12.0.5511), 39 total public hot fixes

FIX: SQL Server crashes when you run a remote query in a stored procedure by using an invalid user name

FIX: Incorrect results when you use a LIKE operator and an “ss” wildcard in SQL Server 2014 or 2016

FIX: Memory leak on the AlwaysOn secondary replica when change tracking is enabled in SQL Server

“The log backup chain is broken” error when the log backup process fails in SQL Server

FIX: Error 1478 when you add a database back to the AlwaysOn availability group in SQL Server

Transaction log backup failure on the secondary replica prevents subsequent backups on Availability Replicas in SQL Server

FIX: Service Broker UCS task leaks memory in SQL Server 2014

Decrease in performance and “non-yielding scheduler” errors caused by unnecessary spinlocks in SQL Server

Operating system error 32 when you restore a database in SQL Server 2014

 

SQL Server 2014 SP2 Cumulative Update 2 (Build 12.0.5522), 17 total public hot fixes

Improved SQL Server stability and concurrent query execution for some columnstore queries in SQL Server 2014 and 2016

SQL Server 2012 crashes with an access violation when you use the TRY…CATCH construct for bulk copy

FIX: Queries that use CHANGETABLE use much more CPU after you install SQL Server 2014 SP1 CU6

FIX: A deadlock occurs when you execute a query plan that has a nested loop join between two hash joins working in the batch mode in SQL Server 2014

FIX: Cannot uninstall service packs for SQL Server 2014 after a cumulative update is installed

A memory leak occurs when you use Azure Storage in SQL Server 2014 or 2016

FIX: Access violation when you run a query that uses clustered columnstore index with trace flag 2389, 2390, or 4139

 

SQL Server 2014 SP2 Cumulative Update 3 (Build 12.0.5538), 37 total public hot fixes

FIX: Deadlock causes deferred transaction on the secondary replica in an Always On environment

A memory leak occurs when you use Azure Storage in SQL Server 2014 or 2016

Unexpected growth of tempdb data files when using SQL Server Service Broker

FIX: TDE encrypted Databases go in suspect state during the recovery phase when you restart SQL Server 2012 or 2014

FIX: On failover, the new secondary replica stops accepting transaction log records until the instance is restarted in SQL Server

FIX: An assertion occurs when you restore a clone database that has Query Store enabled in SQL Server 2014

FIX: DBCC CHECKFILEGROUP reports false inconsistency error 5283 on a database that contains a partitioned table in SQL Server

FIX: Availability databases in incorrect initializing/synchronizing state after failover of SQL Server 2014 AlwaysOn availability group

Statistics are removed after rebuilding a specific partition of an partitioned aligned index on a partitioned table in SQL Server

Updates to DBCC CLONEDATABASE functionality in SQL Server 2014

FIX: You cannot select any replica when you fail over from an availability group that’s in the resolving state

FIX: Out-of-memory errors when you execute DBCC CHECKDB on database that contains columnstore indexes in SQL Server 2014

FIX: Rebuilding a nonclustered index to add columns by using CREATE INDEX with DROP_EXISTING=ON and ONLINE=ON causes blocking

FIX: Queries that run against secondary databases always get recompiled in SQL Server

FIX: Distribution Agent fails for a SQL Server 2014 publisher and a SQL Server 2012 subscriber in Transactional Replication

FIX: The Target Recovery Time of a database set to a nonzero value causes an assertion and a lease timeout in SQL Server 2014

FIX: No automatic failover after database mirroring stops unexpectedly in SQL Server 2012 or 2014

FIX: Intra-query deadlock when values are inserted into a partitioned clustered columnstore index in SQL Server 2014

 

SQL Server 2014 SP2 Cumulative Update 4 (Build 12.0.5540), 25 total public hot fixes

FIX: Error 2809 when you execute a stored procedure that takes a table-valued parameter from RPC calls in SQL Server 2014

FIX: Memory is paged out when columnstore index query consumes lots of memory in SQL Server 2014

FIX: A system assert occurs when a Transact-SQL stored procedure with a TVP argument is called from a SQLCLR procedure

FIX: Access Violation when you execute queries on a readable secondary replica of a SQL Server 2014 AlwaysOn Availability Group

FIX: Error 5262 when you execute DBCC CHECKDB on the primary replica that contains repaired data pages in SQL Server 2012 or 2014

FIX: An Always On secondary replica goes into a disconnecting state

FIX: Cannot connect to a named instance after failover on a mirror server in SQL Server 2016 or 2014

FIX: Fails to execute the DBCC CLONEDATABASE command on an in-place upgrade instance of SQL Server

FIX: Incremental statistics runs with higher sample rate than regular statistics when statistics are created or updated in SQL Server 2014

FIX: Incorrect query result when you use varchar(max) variable in the search condition in SQL Server 2014

FIX: Changing the data type and then updating the table with more than 4,000 records causes database corruption

FIX: Memory leak occurs when you run a query that you don’t have enough permissions in SQL Server 2014

FIX: SQL Server is stopped when you install patches on an instance of SQL Server 2014 that contains many databases

 

SQL Server 2014 SP2 Cumulative Update 5 (Build 12.0.5546), 24 total public hot fixes

FIX: Access violation in SQL Server 2014 when large number of rows are inserted into a partitioned columnstore index

FIX: Service Broker endpoint connections aren’t closed after an availability group failover in SQL Server

FIX: Bad query plan created on secondary replicas after statistics updated via FULLSCAN option on primary replica in SQL Server 2012 or 2014

Update improves handling of documents too large for Full-Text Search indexing in SQL Server

FIX: DMV sys.dm_hadr_availability_group_states displays “NOT_HEALTHY” in synchronization_health_desc column on secondary replicas in SQL Server 2012 or 2014

FIX: Failed assertion and many access violation dump files after the sp_replcmds stored procedure is canceled in SQL Server 2012 or 2014

FIX: Many HkHostLogCheckpointRecord() messages are logged in the SQL Server error log

FIX: A memory leak in SQLWEP causes the host process Wmiprvse.exe to crash in SQL Server 2012 or 2014

 

SQL Server 2014 SP2 Cumulative Update 6 (Build 12.0.5553), 29 total public hot fixes

FIX: Change Data Capture stops working after a recent cumulative update for SQL Server is installed

Update adds the “CLR strict security” feature to SQL Server 2016

FIX: Transaction log backup failure on the secondary replica in SQL Server Always-On Availability Groups

FIX: An access violation occurs when you create an index with page compression in SQL Server

FIX: Error when you execute DBCC CLONEDATABASE on an “Always Encrypted” enabled database in SQL Server 2014 or 2016

FIX: Fails to resume a suspended availability database after a write error in SQL Server 2014

FIX: Unable to drop stored procedure execution article from P2P publication in SQL Server 2014

FIX: Timeout error when you backup a large database to URL in SQL Server 2014

FIX: Access violation occurs when you execute a query to retrieve data from a clustered columnstore index in SQL Server 2014

FIX: Error 574 when you try to install Service Pack 2 for SQL Server 2014

FIX: Unable to rebuild the partition online for a table that contains a computed partitioning column in SQL Server 2014 or 2016

FIX: A stored procedure may fail after an automatic failover occurs on a mirrored database in SQL Server 2012 or 2014

FIX: An assertion occurs when you run a query that performs join operations by using MERGE JOIN in SQL Server 2014

FIX: Access violation when a stored procedure is dropped before you execute END TRY section in SQL Server

Fix: System generated stored procedures are created incorrectly in P2P publication if the schema name of published table contains a period (.) in SQL Server 2014

FIX: “FILESTREAM feature is disabled” error when you use the FILESTREAM feature for SQL Server 2014 in Windows 10 Creators Update

FIX: Query with UNION ALL and a row goal may run slower in SQL Server 2014 or later versions when it’s compared to SQL Server 2008 R2

FIX: DBCC CHECKFILEGROUP reports false inconsistency error 5283 on a database that contains a partitioned table in SQL Server

FIX: “Non-yielding Scheduler” condition occurs on spinlock contention in Microsoft SQL Server 2014

 

SQL Server 2014 SP2 Cumulative Update 7 (Build 12.0.5556), 12 total public hot fixes

FIX: Access violation with query to retrieve data from a clustered columnstore index in SQL Server 2014 or 2016

FIX: “Non-yielding Scheduler” condition occurs for query with many expressions in SQL Server 2014

FIX: Access violation for spatial datatypes query via linked server in SQL Server 2014

 

SQL Server 2014 SP2 Cumulative Update 8 (Build 12.0.5557), 8 total public hot fixes

FIX: Warning and incorrect computed column results after applying hotfix 3213683 and trace flag 176

FIX: “Message 611” error when you use BULK INSERT or INSERT SELECT to insert data into a clustered columnstore index

FIX: Access violation may occur when you cancel a pending query if the missing indexes feature is enabled in SQL Server 2014

FIX: Change tracking manual cleanup fails with table non-existence error in SQL Server 2014 and 2017

 

SQL Server 2014 SP2 Cumulative Update 9 (Build 12.0.5563), 8 total public hot fixes

FIX: SELECT query that uses batch mode hash aggregate operator that counts multiple nullable columns returns incorrect results in SQL Server

FIX: “Invalid comparison due to NO COLLATION” retail assert occurs in SQL Server 2014

FIX: Error when you rebuild a single partition of an index online in SQL Server 2014

FIX: Alert Engine reads complete Application event log and sends alerts on old events after Windows is restarted

FIX: UPDATE statement fails silently when you reference a nonexistent partition function in the WHERE clause in SQL Server 2014

FIX: Access violation when you query against a table that contains column store indexes in SQL Server 2014

FIX: Can’t enable or disable change data capture for a database after you attach it in SQL Server 2014

 

SQL Server 2014 SP2 Cumulative Update 10 (Build 12.0.5571), 5 total public hot fixes

FIX: An access violation error occurs when you execute a stored procedure that references a large object in SQL Server 2014

FIX: Intermittent 9004 error when a backup is restored with Standby Mode in SQL Server 2014

FIX: A REDO thread is not available in the secondary replica after an availability database is dropped in SQL Server 2012 and 2014

FIX: Out of memory error when virtual address space of SQL Server process is very low in SQL Server 2014

 

SQL Server 2014 SP2 Cumulative Update 11 (Build 12.0.5579), 10 total public hot fixes

FIX: EXCEPTION_ACCESS_VIOLATION for query using sys.dm_os_memory_objects statement in SQL Server 2016 or 2017

FIX: It takes a long time to restore a TDE encrypted database backup in SQL Server

FIX: AG failover occurs after a latch time-out when you use SQL Server 2014

FIX: Error 9002 when there is no sufficient disk space for critical log growth in SQL Server 2014 and 2016

FIX: Significantly increased PAGELATCH_EX contentions in sys.sysobjvalues in SQL Server 2014

FIX: SQL Server does not detect a deadlock condition when you run a merge statement

 

SQL Server 2014 SP2 Cumulative Update 12 (Build 12.0.5589), 16 total public hot fixes

FIX: Database can’t be dropped after its storage is disconnected and reconnected in SQL Server

Transaction Log “full” even when there is sufficient space available and Autogrowth is enabled in SQL Server

FIX: A memory leak occurs in sqlwepxxx.dll causes the WmiPrvSe.exe process to crash

FIX: Worker thread hangs after another thread is aborted when running a parallel query in SQL Server

FIX: Access violation occurs when you query a table with an integer column in SQL Server 2017 and SQL Server 2016

SECURITY_CRYPTO_CONTEXT_MUTEX waits cause SQL Server 2016 to stop responding to client requests in SQL Server 2014 and 2016

FIX: Access violation when you try to access a table when page compression is enabled on the table in SQL Server

FIX: Change tracking record is inconsistent during an update on a table that has a clustered or unique index in SQL Server

FIX: A dead latch condition occurs when you run an online index rebuild or a merge command in SQL Server

FIX: “Corrupted index” message and server disconnection when an update statistics query uses hash aggregate on SQL Server

FIX: TDE database goes offline during log flush if you lose connection to the EKM provider in SQL Server

FIX: TDE-enabled backup and restore are slow if the encryption key is stored in an EKM provider in SQL Server

 

SQL Server 2014 SP2 Cumulative Update 13 (Build 12.0.5590), 4 total public hot fixes

FIX: Access violation when you query the sysmembers system table in SQL Server

FIX: Error occurs when you run sp_send_dbmail stored procedure that contains comma in sender email address and name in SQL Server 2014

FIX: Error 3906 when a hotfix is applied on a server that has a SQL Server database snapshot on a pull subscription database

 

SQL Server 2014 SP2 Cumulative Update 14 (Build 12.0.5600), 6 total public hot fixes

FIX: Access violation error occurs when you run a query that uses the XML data type in SQL Server 2014

FIX: Overestimations when you use the default Cardinality Estimator to run a query on a table that contains many null values

FIX: Access violation when you run a query that uses a INSERT INTO … SELECT statement to insert data into a clustered columnstore index

FIX: Incorrect results occur when you convert ‘pollinginterval’ parameter from seconds to hours in sys.sp_cdc_scan in SQL Server 2014 and 2016

FIX: Out of memory error when executing a query on a table that has a large full-text index in SQL Server 2014

 

SQL Server 2014 SP2 Cumulative Update 15 (Build 12.0.5605), 7 total public hot fixes

FIX: Intermittent failures when you back up to Azure storage from SQL Server

FIX: I/O errors on a BPE file causes buffer time out in SQL Server

FIX: Internal error messages when you update a FILESTREAM tombstone system table in SQL Server

FIX: Out of memory error occurs when Database Node Memory (KB) drops below 2% in SQL Server 2014

FIX: Stored procedure output parameter(s) may return incorrectly when called through RPC with PREPARE option in SQL Server 2014

FIX: “Non-yielding” error occurs when there is a heavy use of prepared statements in SQL Server 2014

 

SQL Server 2014 SP2 Cumulative Update 16 (Build 12.0.5626), 3 total public hot fixes

FIX: Assertion occurs when a parallel query deletes from a Filestream table

FIX: Filtered index may be corrupted when you rebuild index in parallel in SQL Server 2014

 

SQL Server 2014 SP2 Cumulative Update 17 (Build 12.0.5632), 3 total public hot fixes

FIX: Fail to join the secondary replica if the database has a defunct filegroup in SQL Server 2014

FIX: Columnstore filter pushdown may return wrong results when there is an overflow in filter expressions in SQL Server 2014

 

SQL Server 2014 SP2 Cumulative Update 18 (Build 12.0.5687), 4 total public hot fixes

FIX: Prolonged non-transactional usage of FileTable without instance restart may cause non-yielding scheduler error or server crash in SQL Server 2014

FIX: Fix prefast warnings (62100) in Sql\Sqlrepl\xpreplclr.net\ReplCmdDataReader.cs to prevent against SQL injection attacks

 

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”.

2 thoughts on “Performance and Stability Related Fixes in Post-SQL Server 2014 SP2 Builds

  1. Interesting. Thanks for putting this together. I didn’t realize that there were this many serious issues since SP2 was released.

Leave a Reply

Your email address will not be published. Required fields are marked *

Other articles

Imagine feeling confident enough to handle whatever your database throws at you.

With training and consulting from SQLskills, you’ll be able to solve big problems, elevate your team’s capacity, and take control of your data career.