Mar 192013

After SQL Server 2012 Service Pack 1 Cumulative Update #3 was released last night, I realized that there are a lot of performance-related fixes that are available for SQL Server 2012, and it might be difficult to keep track of which fixes are available in which cumulative updates.

So, here is a list of performance-related fixes available for SQL Server 2012 to date (scroll down to see a full legend).

Fix / KB ArticleSP1 UpdateRTM Update
Improved Metadata Discovery process performance in SQL Server Native ClientSP1 CU3RTM CU6
FIX: Poor performance when you run a SQL Server traceSP1 CU3N/A
FIX: A query that runs against a DMV enters an infinite loopSP1 CU3N/A
FIX: You experience poor performance when you run a query against an RCSI-enabled tableSP1 CU3N/A
FIX: High "log write waits" counter valueSP1 CU3N/A
FIX: Memory is not released when you use Linq to read events in Extended Events filesSP1 CU3RTM CU6
FIX: CPU spike when there is no load on a server after you install SQL Server 2012SP1 CU3N/A
FIX: Value of the NORECOMPUTE property for a partitioned index is not retained after you rebuild the indexSP1 CU3N/A
Performance issues in NUMA environmentsSP1 CU3N/A
A database transaction log continues to grow after you upgrade to SQL ServerSP1 CU2RTM CU5
FIX: High CPU usage when you query a binary large object column by using the NOLOCK hintSP1 CU2RTM CU5
FIX: Large queries that modify data run slower than expected when many locks accumulateSP1 CU2RTM CU5
FIX: A transaction log restore operation takes longer than expected if a database file is removedSP1 CU2RTM CU5
SQL Server 2012 experiences out-of-memory errorsSP1 CU2RTM CU5
FIX: Memory leak if you enable the AUTO_UPDATE_STATISTICS_ASYNC statistics optionSP1 CU2RTM CU5
Windows Installer starts repeatedly after you install SQL Server 2012 SP1SP1 CU2N/A
FIX: Error 17883 when you run a query on a server that has many CPUs and a large amount of memorySP1 CU2N/A
FIX: "out of memory" error when you use ODBCSP1 CU1RTM CU3
FIX: Performance of a SELECT statement that contains a LIKE operator and an ESCAPE clause is lowSP1 CU1RTM CU3
FIX: SQL Server stops responding and a "Non-yielding Scheduler" error is loggedSP1 CU1RTM CU3
FIX: SQL Server takes a long time to generate scripts for a partitioned table with data compressionSP1 CU1RTM CU4
FIX: Slow performance or deadlock when you restore a database and execute statements at the same timeSP1 CU1RTM CU3
FIX: Worker threads do not wake up immediately when multiple I/O-intensive tasks are running at the sameSP1 CU1RTM CU4
FIX: "Process appears to be non-yielding on Scheduler " error message when you run a querySP1 CU1RTM CU4
FIX: Database is offline and in "In Recovery" state when you rebuild an index if the transaction log is fullSP1 CU1RTM CU4
FIX: Slow performance when you restore a database if CDC is enabledService Pack 1RTM CU2
FIX: Locked page allocations are enabled without any warning after you upgradeService Pack 1RTM CU2
FIX: Latch time-out error when you have heap tables and when data compression is enabledService Pack 1RTM CU2
FIX: An instance of SQL Server 2012 may end unexpectedly when FILESTREAM data is accessedService Pack 1RTM CU2
FIX: Low CPU spikes at a set interval even without user activityService Pack 1RTM CU1
FIX: Slow performance when an AFTER trigger runs on a partitioned tableService Pack 1RTM CU1
FIX: Performance might decrease when you run a query that uses the sp_cursoropen stored procedure after you upgradeService Pack 1RTM CU1
FIX: It takes a long time to restore a databaseService Pack 1RTM CU1
FIX: Poor performance when you run a query that contains correlated AND predicatesService Pack 1RTM CU1
FIX: Unnecessary updates to a subscriber after you reinitialize it if a new article is addedService Pack 1RTM CU1
FIX: Slow performance occurs if high CPU usage is observed with contention over the QUERY_EXEC_STATS spinlockService Pack 1RTM CU1
FIX: Slow performance when you use DQS to perform a data cleansing against a large data sourceService Pack 1RTM CU1
FIX: "non-yielding on Scheduler" error if you use Service Broker to run a distributed queryService Pack 1RTM CU1
FIX: Cluster disk validation takes long time unexpectedly if there are more than 20 disks or volumes under a single drive letter during failover cluster installationService Pack 1RTM CU1
FIX: Out-of-memory error when you run SQL Server 2012 on a computer that uses NUMAService Pack 1RTM CU1
FIX: Error message if you use more than 30 user-defined resource governor resource pools for an instance of SQL Server 2012: "Non-yielding IOCP Listener"Service Pack 1RTM CU1
FIX: "System_health" session diagnostics collection task freezes SQL ServerService Pack 1RTM CU1
FIX: Availability group failover takes a long time if a database in the availability group contains a FileTableService Pack 1N/A

My opinion remains that you should always stay up to date (after thoroughly testing them, of course) with cumulative updates – not just for performance-related fixes, but for many other fixes as well (I lost count of the number of "incorrect result" bugs, "assertion error" issues and access violations that have been fixed).

You should take note that several fixes available in the newly refreshed SP1 branch have not yet been made available in the RTM branch. Of course this situation will roughly flip-flop next month, and the month after, and until the cumulative update release cadence is synchronized between the RTM and SP1 branches.

Legend of SQL Server 2012 Updates

RTM Cumulative Update 111.0.23162012-04-12
RTM Cumulative Update 211.0.23252012-06-18
RTM Cumulative Update 311.0.23322012-08-31
RTM Cumulative Update 411.0.23832012-10-15
RTM Cumulative Update 511.0.23952012-12-17
RTM Cumulative Update 611.0.24012013-02-18
Service Pack 1 (list of fixes)11.0.30002012-11-15
SP1 Cumulative Update 111.0.33212012-11-20
SP1 Cumulative Update 211.0.33392013-01-21
SP1 Cumulative Update 311.0.33492013-03-18

I will try to keep this list up to date as new cumulative updates are released.

  One Response to “Performance-related fixes for SQL Server 2012”

  1. Aaron,

    The Numa fix KB2819662 is an interesting one as it mentions it affects all the way back to SQL2005. I wonder how much degredation this bug may cause.


 Leave a Reply



You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="" cssfile="">