Trace flag 836: Use the max server memory option for the buffer pool
Trace flag 836 causes SQL Server to size the buffer pool at startup based on the value of the
max server memory option instead of based on the total physical memory. You can use trace flag 836 to reduce the number of buffer descriptors that are allocated at startup in 32-bit Address Windowing Extensions (AWE) mode.
Trace flag 836 applies only to 32-bit versions of SQL Server that have the AWE allocation enabled. You can turn on trace flag 836 only at startup.
Trace flag 2301: Enable advanced decision support optimizations
Trace flag 2301 enables advanced optimizations that are specific to decision support queries. This option applies to decision support processing of large data sets.
You can turn on trace flag 2301 at startup or in a user session. When you turn on trace flag 2301 at startup, the trace flag has global scope. When you turn on trace flag 2301 in a user session, the trace flag has session scope.
Trace flags that disable various ring buffers
A ring buffer is an internal diagnostic mechanism in SQL Server that you can use to record additional information about the server. Typically, you use this information to troubleshoot server problems. You can explore the contents of the ring buffers by using the
sys.dm_os_ring_buffers dynamic management view.
Disabling a ring buffer generally improves performance. However, disabling a ring buffer eliminates diagnostic information that Microsoft Support uses and may prevent successful troubleshooting.
The following trace flags disable various ring buffers.
Trace flag 8011: Disable the ring buffer for Resource Monitor
Trace flag 8011 disables the collection of additional diagnostic information for Resource Monitor. You can use the information in this ring buffer to diagnose out-of-memory conditions. Trace flag 8011 always applies across the server and has global scope. You can turn on trace flag 8011 at startup or in a user session.
Trace flag 8012: Disable the ring buffer for schedulers
SQL Server records an event in the schedule ring buffer every time that one of the following events occurs:
- A scheduler switches context to another worker.
- A worker is suspended.
- A worker is resumed.
- A worker enters the preemptive mode or the non-preemptive mode.
You can use the diagnostic information in this ring buffer to analyze scheduling problems. For example, you can use the information in this ring buffer to troubleshoot problems when SQL Server stops responding.
Trace flag 8012 disables recording of events for schedulers. You can turn on trace flag 8012 only at startup.
Trace flag 8018: Disable the exception ring buffer
Trace flag 8019: Disable stack collection for the exception ring buffer
The exception ring buffer records the last 256 exceptions that are raised on a node. Each record contains some information about the error and contains a stack trace. A record is added to the ring buffer when an exception is raised.
Trace flag 8018 disables the creation of the ring buffer, and no exception information is recorded. Trace flag 8019 disables stack collection during the record creation. Trace flag 8019 has no effect if trace flag 8018 is turned on. Disabling the exception ring buffer makes it more difficult to diagnose problems that are related to internal server errors. You can turn on trace flag 8018 and trace flag 8019 only at startup.
Trace flag 8020: Disable working set monitoring
SQL Server uses the size of the working set when SQL Server interprets the global memory state signals from the operating system. Trace flag 8020 removes the size of the working set from consideration when SQL Server interprets the global memory state signals. If you use this trace flag incorrectly, heavy paging occurs, and the performance is poor. Therefore, contact Microsoft Support before you turn on trace flag 8020.
You can turn on trace flag 8020 only at startup.
Trace flag 8744: Disable pre-fetching for ranges
Trace flag 8744 disables pre-fetching for the
Nested Loops operator. Incorrect use of this trace flag may cause additional physical reads when SQL Server executes plans that contain the
Nested Loops operator. For more information about the
Nested Loops operator, see the "Logical and physical operators reference" topic in SQL Server 2005 Books Online.
You can turn on trace flag 8744 at startup or in a user session. When you turn on trace flag 8744 at startup, the trace flag has global scope. When you turn on trace flag 8744 in a user session, the trace flag has session scope.
The following table provides more information about the products or tools that automatically check for the condition that is described in the "Symptoms" section in your instance of SQL Server and in the versions of SQL Server against which the rule is evaluated.
Rule software |
Rule title |
Rule description |
Product versions against which the rule is evaluated |
System Center Advisor |
SQL Server with Column store index and Trace Flag 834 might cause instability of Server |
In this SQL Server instance advisor detected the presence of one or more column store index along with Trace Flag 834 (large pages for buffer pool). This can cause Server instability. We do not recommend enabling this Trace Flag when you are using Column store index. |
SQL Server 2012 |