SQL Server 2014 SP2 Now Available

Fast on the heels of the general release of SQL Server 2016 Microsoft has just released service pack 2 for SQL Server 2014. SP2 is now live and available for download immediately. SQL Server 2014 SP2 contains 20+ improvements focused on performance, scalability and diagnostics based on the feedback from the SQL Server community and Microsoft customers. It also provides a roll-up of released hotfixes (including SQL 2014 SP1 CU7.) Since SP2 includes hotfixes through SP1 CU7 there is no requirement to wait for SP2 CU1 to ‘catch-up’ with 2014 SP1 CU content.

According to my sources in the Microsoft Product Group these are the improvements included in SQL Server 2014 SP2 (all descriptions and links provided by Microsoft):


Performance and Scalability Improvements in SQL 2014 SP2

  • Automatic Soft NUMA partitioning – With SQL 2014 SP2, Automatic Soft NUMA is introduced out of box when Trace Flag 8079 is enabled at the server level. When Trace Flag 8079 is enabled during startup, SQL Server 2014 SP2 will interrogate the hardware layout and automatically configures Soft NUMA on systems reporting 8 or more CPUs per NUMA node.The automatic soft NUMA behavior is Hyperthread (HT/logical processor) aware. The partitioning and creation of additional nodes scales background processing by increasing the number of listeners, scaling and network and encryption capabilities. It is recommended to first test the performance of workload with Auto-Soft NUMA before it is turned ON in production.
  • Dynamic Memory Object Scaling - Dynamically partition memory object based on number of nodes and cores to scale on modern hardware. The goal of dynamic promotion is to automatically partition a thread safe memory object (CMEMTHREAD) if it becomes a bottleneck. Unpartitioned memory objects will be dynamically promoted to be partitioned by node (number of partitions equals number of NUMA nodes) based on the workload and bottleneck, and memory objects partitioned by node can be further promoted to be partitioned by CPU (number of partitions equals number of CPUs). This enhancement eliminates the need of Trace Flag 8048 post SQL 2014 SP2.
  • MAXDOP hint for DBCC CHECK* commands - This improvement addresses one of the connect feedback from customers and is useful to run DBCC CHECKDB with MAXDOP setting other than the sp_configure value. If MAXDOP exceeds the value configured with Resource Governor, the Database Engine uses the Resource Governor MAXDOP value, described in ALTER WORKLOAD GROUP (Transact-SQL). All semantic rules used with the max degree of parallelism configuration option are applicable when you use the MAXDOP query hint.
  • Database Lock Partitioning - Trace flags 1236 and 9024 were introduced in SQL Server 2012 to address lock contention and log write waits for systems with high number of transactions. SQL Server 2014 SP2 makes this behavior default without having to use the trace flags. This ensures that your system is able to scale up when required without any user action required.
  • Enable >8TB for Buffer Pool - Enabled 128TB Virtual address space for buffer pool usage. This improvement enables SQL Server Buffer Pool to scale beyond 8TB on modern hardware.
  • SOS_RWLock spinlock Improvement - The SOS_RWLock is a synchronization primitive used in various places throughout the SQL Server code base.  As the name implies the code can have multiple shared (readers) or single (writer) ownership.  This improvement removes the need for spinlock for SOS_RWLock in no conflict situation thereby enable read intensive workloads to scale further.
  • Spatial Native Implementation – Significant improvement in spatial query performance which was introduced earlier in SQL 2012 SP3 is now introduced in SQL 2014 SP2 as well through native implementation (KB3107399)


Supportability and Diagnostics Improvements

  • Database Cloning - Clone database is a new DBCC command added that allows Microsoft CSS to troubleshoot existing production databases by cloning the schema and metadata without the data. The clone is created with the command DBCC clonedatabase(‘source_database_name’, ‘clone_database_name’). Cloned databases should not be used in production environments. To see if a database has been generated from a clonedatabase you can use the following command, select DATABASEPROPERTYEX('clonedb', 'isClone').The return value of 1 indicates the database is created from clonedatabase while 0 indicates it is not a clone.
  • Tempdb supportability - A new error log message indicating the number of tempdb files and notifying different size/autogrowth of tempdb data files at server startup.
  • Database Instant File Initialization Logging - A new error log message indicating that Database Instant File Initialization is enabled/disabled at server startup.
  • Module names in callstack - The Xevent callstack now includes modules names + offset instead of absolute addresses.
  • New DMF for incremental statistics – This improvement address connect feedback (797156) to enable tracking the incremental statistics at the partition level. A new DMF sys.dm_db_incremental_stats_properties is introduced to expose information per-partition for incremental stats.
  • Index Usage DMV behavior updated – This improvement addresses connect feedback (739566) from customers where starting SQL 2014 SP2, rebuilding an index will *not* clear any existing row entry from sys.dm_db_index_usage_stats for that index. The behavior now is to what it was in SQL 2008.
  • Better correlation between diagnostics XE and DMVs – This improvement addresses connect feedback (1934583). Query_hash and query_plan_hash are used for identifying a query uniquely. DMV defines them as varbinary(8), while XEvent defines them as UINT64. Since SQL server does not have "unsigned bigint", casting does not always work. This improvement introduces new XEvent action/filter columns equivalent to query_hash and query_plan_hash except they are defined as INT64 which can help correlating queries between XE and DMVs.
  • Support for UTF-8 in BULK INSERT and BCP – This improvement addresses connect feedback (370419) where support for export and import of data encoded in UTF-8 character set is now enabled in BULK INSERT and BCP.
  • Lightweight per-operator query execution profiling – While troubleshooting query performance, although showplan provides lot of information on the query execution plan and cost of operator in the plan but it has limited information on actual runtime statistics like (CPU, I/O Reads, elapsed time per-thread). SQL 2014 SP2 introduces these additional runtime statistics per operator in the Showplan as well as an XEvent (query_thread_profile) to assist troubleshooting query performance.
  • Change Tracking Cleanup – A new stored procedure sp_flush_CT_internal_table_on_demand is introduced to cleanup change tracking internal tables on demand.
  • AlwaysON Lease Timeout Logging - Added new logging capability for Lease Timeout messages so that the current time and the expected renewal times are logged. Also a new message was introduced in the SQL Errorlog regarding the timeouts.
  • New DMF for retrieving input buffer in SQL Server - A new DMF for retrieving the input buffer for a session/request (sys.dm_exec_input_buffer) is now available. This is functionally equivalent to DBCC INPUTBUFFER.
  • Mitigation for underestimated and overestimated memory grant - Added new query hints for Resource Governor through MIN_GRANT_PERCENT and MAX_GRANT_PERCENT (KB3107401). This allows you to leverage these hints while running queries by capping their memory grants to prevent memory contention.
  • Better memory grant/usage diagnostics - A new extended event was added to the list of tracing capabilities in SQL Server (query_memory_grant_usage) to track memory grants requested and granted. This provides better tracing and analysis capabilities for troubleshooting query execution issues related to memory grants (KB3107173).
  • Query execution diagnostics for tempdb spill - Hash Warning and Sort Warnings now have additional columns to track physical I/O statistics, memory used and rows affected. We also introduced a new hash_spill_details extended event. Now you can track more granular information for your hash and sort warnings (KB3107172). This improvement is also now exposed through the XML Query Plans in the form of a new attribute to the SpillToTempDbType complex type (KB3107400). Set statistics on now shows sort worktable statistics.
  • Improved diagnostics for query execution plans that involve residual predicate pushdown - The actual rows read will now be reported in the query execution plans (KB3107397) to help improve query performance troubleshooting. This should negate the need to capture SET STATISTICS IO separately. This now allows you to see information related to a residual predicate pushdown in a query plan.
  • The Service Pack is available for download at the Microsoft Download Center, and will also be made available on Microsoft Update, MSDN, MAPS/MPN, MBS/Partner Source, and VLSC by the end of this week.


Download Options

To obtain SQL Server 2014 SP2 you can visit any of the following links provided by Microsoft:

SQL Server 2014 SP2

SQL Server 2014 SP2 Express

SQL Server 2014 SP2 Feature Packs

SQL Server 2014 SP2 Report Builder

SP2 Reporting Services Add-in for Microsoft Sharepoint

SP2 Semantic Language Statistics

SQL Server 2014 Service Pack 2 Release Information





Hide comments


  • Allowed HTML tags: <em> <strong> <blockquote> <br> <p>

Plain text

  • No HTML tags allowed.
  • Web page addresses and e-mail addresses turn into links automatically.
  • Lines and paragraphs break automatically.