sqlskills-logo-2015-white.png

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

As of August 8, 2017, there have been thirteen Cumulative Updates (CU) for the Service Pack 1 branch of SQL Server 2014. There have been a large number of hotfixes in each of these cumulative updates. If you are still running on the SQL Server 2014 SP1 branch, I really think you should be running the latest SQL Server 2014 SP1 Cumulative Update. Right now, that means SP1, CU13 (Build 12.0.4522), which was released on July 17, 2017.

Table 1 shows the SQL Server 2014 SP1 CU builds that have been released so far.

Build Description Release Date
12.0.4416 SP1 CU1 June 19, 2015
12.0.4422 SP1 CU2 August 17, 2015
12.0.4425 SP1 CU3 October 19, 2015
12.0.4436 SP1 CU4 December 21, 2015
12.0.4439 SP1 CU5 February 22, 2016
12.0.4457 SP1 CU6 May 30, 2016
12.0.4459 SP1 CU7 June 20, 2016
12.0.4468 SP1 CU8 August 15, 2016
12.0.4474 SP1 CU9 October 17, 2016
12.0.4491 SP1 CU10 December 19, 2016
12.0.4502 SP1 CU11 February 21, 2017
12.0.4511 SP1 CU12 April 17, 2017
12.0.4522 SP1 CU13 July 17, 2017
     

Table 1: SQL Server 2014 SP1 CU Builds

You can follow the KB article link below to see all of the CU builds for all of SQL Server 2014 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 RTM 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 SP1 branch:

SQL Server 2014 SP1 Cumulative Update 1 (Build 12.0.4416), 112 total public hot fixes

FIX: Performance issue occurs when you use sqlncli11.dll ODBC driver to access SQL Server in an application

FIX: Improved memory management for columnstore indexes to deliver better query performance in SQL Server 2014

FIX: A SELECT query that’s run as a parallel batch-mode scan triggers a deadlock in SQL Server 2014

FIX: Data loss might occur when you use Windows Azure Storage in SQL Server 2014 on high latency networks

Incorrect values are included in the description column when you query the sys.dm_xe_objects dynamic management object in SQL Server 2014

FIX: Cannot create statistics when you execute statement to create it directly or in the background in SQL Server 2014

FIX: Complex parallel query does not respond in SQL Server 2012 or SQL Server 2014

FIX: An I/O error that occurs on BPE files causes SQL Server 2014 to disable BPE

FIX: Access violation occurs when you connect to an instance of SQL Server 2014

“Non-yielding Scheduler” error occurs and SQL Server stops responding when a database has columnstore indexes on a Microsoft SQL Server 2014 instance

Incorrect results are returned in an indexed view after an Insert or Delete operation on the base table occurs in SQL Server 2014

FIX: Memory leak in USERSTORE_SCHEMAMGR and CPU spikes occur when you use temp table in SQL Server 2012 or 2014

FIX: DBCC CHECKDB and DBCC CHECKTABLE take longer to run when SQL CLR UDTs are involved in SQL Server 2012 or SQL Server 2014

FIX: Access violation occurs when you delete rows from a table that has clustered columnstore index in SQL Server 2014

FIX: Paging out in memory occurs when columnstore index query consumes large memory in SQL Server 2014

FIX: A severe error occurs in SQL Server 2014 during compilation of a query on a table with clustered columnstore index

Large query compilation waits on RESOURCE_SEMAPHORE_QUERY_COMPILE in SQL Server 2014

FIX: Error 1205 when you execute parallel query that contains outer join operators in SQL Server 2014

FIX: The transaction isolation level is reset incorrectly when the SQL Server connection is released in SQL Server 2014

FIX: SOS_CACHESTORE spinlock contention on ad hoc SQL Server plan cache causes high CPU usage in SQL Server 2012 or 2014

FIX: Memory leak occurs when you run DBCC CHECKDB against a database in SQL Server 2014

FIX: Error 8646 when you run DML statements on a table with clustered columnstore index in SQL Server 2014

FIX: SQL Server takes long time to open database after recovery to add or remove a data file in SQL Server 2014 or SQL Server 2012

FIX: Access violation and “No exceptions should be raised by this code” error occur when you use SQL Server 2012 or SQL Server 2014

FIX: Error 3624 occurs when you execute a query that contains multiple bulk insert statements in SQL Server 2014

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

FIX: Incorrect choice of a nested loops join strategy causes poor query performance in SQL Server 2014

FIX: Error 33294 occurs when you alter column types on a table that has clustered columnstore indexes in SQL Server 2014

FIX: Access violation when a missing task for a background clear operation tries to delete a missing index entry

FIX: Error 33415 occurs when you restart the SQL Server service or alter database in SQL Server 2012 or SQL Server 2014

FIX: Error 35377 when you run a parallel query that contains MERGE statements in SQL Server 2014

 

SQL Server 2014 SP1 Cumulative Update 2 (Build 12.0.4422), 44 total public hot fixes

FIX: The Resource database is missing after you install updates or service packs for instances of SQL Server 2012 one after another and then restart the server

FIX: Incorrect result when you execute a full-text query with parallel execution plan in SQL Server 2012 or SQL Server 2014

FIX: CMEMTHREAD waits occur when you execute many ad hoc queries in SQL Server 2012 or SQL Server 2014

FIX: You cannot set a SQL Server 2012 or 2014 database to single-user mode if the database is read-only

FIX: Cannot enable “change data capture” on a table that uses a unique index with more than one included column in SQL Server 2012 or 2014

FIX: Error messages are logged when you execute a non-cacheable auto-parameterized query in SQL Server 2012 or 2014

FIX: Error 1635 occurs when you use Product Update to install SQL Server 2014 SP1 and SQL Server 2014 SP1 CU1

Restore Log with Standby Mode on an Advanced Format disk may cause a 9004 error in SQL Server 2008 R2 or SQL Server 2012

FIX: Increased HADR_SYNC_COMMIT wait types when AlwaysOn Availability Groups contain memory-optimized tables in SQL Server 2014 Service Pack 1

FIX: A stalled dispatcher system dump occurs forcing a failover and service outage on the availability groups in SQL Server 2014 Service Pack 1

FIX: Incorrect results occur in a rare scenario when you run a query that contains a nested loop join and performance spool in its inner side in SQL Server 2012 or 2014

FIX: An AlwaysOn database on a secondary replica shows a “NOT SYNCHRONIZING” status in SQL Server 2014

FIX: “Possible schema corruption. Run DBCC CHECKCATALOG” error occurs when you delete column in SQL Server 2014

FIX: Access violation and unexpected SQL Server shutdown occur when common criteria compliance is enabled

FIX: The change table is ordered incorrectly for updated rows after you enable change data capture for a Microsoft SQL Server 2012 or 2014 database

FIX: A deadlock occurs when you execute the sp_estimate_data_compression_savings stored procedure in SQL Server 2012

FIX: Hash or merge join hints may be ignored when you execute a query in SQL Server 2012 or SQL Server 2014

FIX: An online rebuild of indexes is unsuccessful when a table partition is read-only in SQL Server 2014 Service Pack 1

FIX: Maintenance Plan performs offline index rebuild for large object table in SQL Server 2012 or SQL Server 2014

 

SQL Server 2014 SP1 Cumulative Update 3 (Build 12.0.4425), 36 total public hot fixes

FIX: Can’t backup in-memory OLTP database that is restored by using full and differential restore in SQL Server 2014

FIX: CPU usage is higher than expected when you reduce the value of CAP_CPU_PERCENT argument in creating resource pool

FIX: Scheduler deadlock on primary replica when you remove a replica from an AlwaysOn availability group in SQL Server 2012 or SQL Server 2014

FIX: Rare incorrect result occurs when you run parallel query in SQL Server 2012 or SQL Server 2014

FIX: Error 602 when you run a stored procedure repeatedly in SQL Server 2012 or SQL Server 2014

FIX: Access violations when you use the FileTable feature in SQL Server 2012 or SQL Server 2014

FIX: Queries take longer time to compile in SQL Server 2014 than in earlier versions

FIX: 100% CPU usage occurs when in-memory OLTP database is in recovery state in SQL Server 2014

FIX: Metadata inconsistency error occurs after you switch table partitions and drop corresponding files and filegroups

FIX: DBCC CHECKFILEGROUP reports false inconsistency errors on database that has partitioned table in SQL Server 2014

FIX: It takes longer to run the ALTER DATABASE SET HADR OFF command on a secondary replica in SQL Server 2014

FIX: Error 9002 and error 3052 when you try to add or back up log file in SQL Server 2012 or SQL Server 2014

FIX: Sort operator spills to tempdb in SQL Server 2012 or SQL Server 2014 when estimated number of rows and row size are correct

FIX: Backup operation fails in a SQL Server database after you enable change tracking

FIX: Rare index corruption when you build a columnstore index with parallelism on a partitioned table in SQL Server 2014

FIX: Access violation occurs when you execute a query that contains many joins and coalesce functions in SQL Server 2014

FIX: DBCC CHECKDB doesn’t report metadata inconsistency of invalid filegroups in its summary in SQL Server 2014

FIX: It takes a longer time than earlier versions of SQL Server when you run DBCC CHECKDB in SQL Server 2012

 

SQL Server 2014 SP1 Cumulative Update 4 (Build 12.0.4436), 36 total public hot fixes

FIX: Can’t create database snapshot when you use DBCC CHECKDB in SQL Server 2014

FIX: Memory leak occurs on MEMOBJ_SOSNODE type object when you run query in sys.database_permissions in SQL Server 2014

FIX: Access violation occurs when you update compressed data in SQL Server 2014

FIX: Out of memory error when the virtual address space of the SQL Server process is very low on available memory

FIX: Performance decrease when application with connection pooling frequently connects or disconnects in SQL Server

FIX: SQL Server service performs more I/O operations on the mirror server than on the principal server

FIX: Access violation occurs when you run INSERT, UPDATE or MERGE statement on view with check option in SQL Server 2014

FIX: Log shipping restore job takes a long time on the secondary server in SQL Server 2014

FIX: Query stops responding in SQL Server 2014 that starts with trace flag 2430 as startup parameter

FIX: An access violation occurs when you use the TDE and BPE features in SQL Server 2014

FIX: DBCC CHECKDB/CHECKTABLE command may take longer in SQL Server 2012 or SQL Server 2014

FIX: SQL Server stops responding when you back up the certificate that is used to encrypt the database encryption key in SQL Server 2012 or SQL Server 2014

FIX: The execution of stored procedure is replicated to subscriber incorrectly from Publisher in SQL Server 2014

FIX: The query stops responding when you run a parallel query on the table with a columnstore index in SQL Server 2014

FIX: Temporary files that are created by DBCC aren’t deleted when SQL Server is restarted

 

SQL Server 2014 SP1 Cumulative Update 5 (Build 12.0.4439), 21 total public hot fixes

FIX: Access violation occurs when you use the ODBC Driver11 in SQL Server 2014

An update to enable the “-k” startup parameter to control the rate that work files can spill to tempdb is available for SQL Server 2012 Service Pack 3

FIX: It takes a long time to install service packs or cumulative updates in SQL Server 2014

FIX: Error when you use the replication feature in SQL Server 2014

FIX: Columnstore index corruptions occur when you use AlwaysOn Availability Groups feature in SQL Server 2014

FIX: Assertion failure occurs when you run a query in SQL Server 2014

FIX: An assertion failure occurs on secondary replica when you use AlwaysOn Availability Groups in SQL Server 2014

FIX: “Non-yielding Scheduler” condition when you query a partitioned table that has a columnstore index in SQL Server 2014

FIX: “Non-yielding Scheduler” condition occurs when you run a query that contains a UNION operation in SQL Server 2014

 

SQL Server 2014 SP1 Cumulative Update 6 (Build 12.0.4457), 46 total public hot fixes

FIX: Estimated number of rows is calculated incorrectly for a predicate involving a unique GUID column in SQL Server 2014

FIX: “Non-yielding Scheduler” error when versioning cleanup task runs on a SQL Server 2014 AlwaysOn secondary replica

FIX: Column data may be deleted when you update another column in a table in SQL Server 2012 or SQL Server 2014

FIX: The Log Reader Agent stops intermittently and an Access Violation occurs in SQL Server 2012 or SQL Server 2014

FIX: Assertion failure on secondary replica when you use AlwaysOn Availability Groups in SQL Server 2014

FIX: SELECT INTO statement together with the TABLOCKX hint or the TABLOCK and UPDLOCK hints fail on SQL Server 2014

FIX: Number of rows is underestimated for a query predicate that involves a scalar user-defined function in SQL Server 2014

FIX: Access violation when you execute a stored procedure that uses a cursor on a table variable in SQL Server

FIX: Canceling a backup task crashes SQL Server 2014

FIX: Large disk checkpoint usage occurs for an In-Memory optimized filegroup during heavy non-In-Memory workloads

Running multiple UPDATE STATISTICS for different statistics on a single table concurrently is available

FIX: Columnstore index corruption occurs when you use AlwaysOn Availability Groups in SQL Server 2014

FIX: A “Non-yielding Scheduler” condition occurs when you perform a BULK INSERT and the data file exists in a FileTable in SQL Server 2014

FIX: Memory corruption causes an access violation in an instance of SQL Server 2014

FIX: SELECT…INTO statement retrieves incorrect result from a clustered columnstore index in SQL Server 2014

FIX: “A severe error occurred on the current command” when a Table-Valued User-Defined function is referred to by a synonym

 

SQL Server 2014 SP1 Cumulative Update 7 (Build 12.0.4459), 32 total public hot fixes

FIX: An access violation occurs when you use the TDE and BPE features in SQL Server 2014

FIX: SQLDiag fails with function 87 error in a SQL AlwaysOn availability group

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

FIX: High CPU usage on SQL queries after install SQL Server 2014 Service Pack 1

FIX: Change tracking cleanup task fails if another database is offline in SQL Server 2014

SQL Server 2014 doesn’t start after you configure the tempdb database to use a very small log file

FIX: DBCC CHECKTABLE returns incorrect result after the clustered columnstore index is rebuilt in SQL Server 2014

FIX: Assertion failures after you install deprecated Cumulative Update 6 for SQL Server 2014 SP1

FIX: SQL Server 2014 crashes when you execute a query that contains a NONEXISTENT query hint on an In-Memory OLTP database

Query plan generation improvement for some columnstore queries in SQL Server 2014

FIX: “Non-yielding Scheduler” condition occurs when you run a query in SQL Server 2014

FIX: SQL Server database creation on a system with a large volume of memory takes longer than expected

 

SQL Server 2014 SP1 Cumulative Update 8 (Build 12.0.4468), 39 total public hot fixes

FIX: sys.dm_db_index_usage_stats missing information after index rebuild on SQL Server 2012 or 2014

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

SQL Server 2014 crashes because of an access violation error that occurs while it reads data from an event file target

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

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

FIX: Deadlock occurs when you acquire a SCH-M lock and ALTER PARTITION in SQL Server 2014

FIX: Queries always get recompiled on the secondary databases in SQL Server 2014

FIX: Garbage collection in In-Memory OLTP may cause “non-yielding scheduler” in SQL Server 2014

FIX: Query runs slowly when SQL Server uses hash aggregate in the query plan

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

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

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

FIX: Error 3456 “Could not redo log record” occurs, causing replicas to be suspended or repeated behavior in SQL Server

 

SQL Server 2014 SP1 Cumulative Update 9 (Build 12.0.4474), 13 total public hot fixes

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

Statistics removed after rebuilding the index on a partitioned table in SQL Server

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

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

 

SQL Server 2014 SP1 Cumulative Update 10 (Build 12.0.4491), 27 total public hot fixes

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

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

“A digitally signed driver is required” warning when you install SQL Server packages in Windows Server 2016 and Windows 10

FIX: The change table is ordered incorrectly for updated rows after you enable change data capture for a Microsoft SQL Server 2012 or 2014 database

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: Memory is paged out when columnstore index query consumes lots of memory in SQL Server 2014

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

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

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

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

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

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

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

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

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

 

SQL Server 2014 SP1 Cumulative Update 11 (Build 12.0.4502), 14 total public hot fixes

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

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

“A digitally signed driver is required” warning when you install SQL Server packages in Windows Server 2016 and Windows 10

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

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

FIX: AFTER DELETE triggers occur in the wrong order in the ON DELETE CASCADE action chain in SQL Server 2014

FIX: Assert memory dump on a mirror server in SQL Server 2012

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

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

 

SQL Server 2014 SP1 Cumulative Update 12 (Build 12.0.4511), 12 total public hot fixes

FIX: A memory leak in SQLWEP causes the host process Wmiprvse.exe to crash 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: Bad query plan created on secondary replicas after statistics updated via FULLSCAN option on primary replica in SQL Server 2012 or 2014

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

Update reduces the execution frequency of the sp_MSsubscription_cleanup stored procedure in SQL Server 2012 or 2014

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

 

SQL Server 2014 SP1 Cumulative Update 13 (Build 12.0.4522), 11 total public hot fixes

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

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

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

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

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: Access violation occurs when you execute a query to retrieve data from a clustered columnstore index in SQL Server 2014

 

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 SP1 Builds

  1. I don’t know how to thank you for all information, scripts and courses you provide us with. I’m really so glad because I found your courses 3 years ago as I’ve become a real DBA because of you. The easy, logical and in-depth steps that you explain are inevitable for any DBA these days.

    Thank you so much

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.