My database is running on SQL Server 2012 with 32 core processors. As per sp_blitz (by Brent Ozar) we need to enable trace flag 8048.

Should we enable this flag on 2012, or it is recommended only for 2014 onwards?

2 Answers 2


Microsoft's Bob Dorr wrote that trace flag 8048 is no longer required for SQL Server 2016 and newer:

This means that trace flag -T8048 is no longer valid or needed on SQL Server 2016 because the design is such that SQL Server dynamically adjusts to CMemThread wait activities in order to optimize performance.

However, the behavior it fixes (CMEMTHREAD waits) is still relevent for 2014 and earlier versions.


Does It Do It?

The behavior in newer versions of SQL Server is that the partitioning kicks in dynamically as certain thresholds are crossed. I don't have access to those calculations, so I can't tell you when it will kick in.

The problem is that you may still need 8048 for it to be the overall default behavior, since you may run into scenarios where you get close to but don't cross those thresholds, or the time it takes to alter the partitioning behavior still results in degraded performance.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.