This is my 38th blog on SQL Server Ring Buffer Trace Flag 8019 in the series of One Trace Flag a Day. You can go to all blogs under that series by clicking here.
Ring buffer is very good mechanisms to collect the information that can be used to troubleshoot various kinds of issues like internal memory pressure, external memory pressure and schedulers etc. collection of such information also consume some resources because everything comes at a cost. We can see the information collected by ring buffer using sys.dm_os_ring_buffers DMV. If you will go through this DMV then you will find out a column [ring_buffer_type]. This shows, SQL Server collects the information about various ring buffer types like RING_BUFFER_EXCEPTION, RING_BUFFER_SCHEDULER, RING_BUFFER_MEMORY_BROKER_CLERKS, RING_BUFFER_RESOURCE_MONITOR etc.
From previous blog on trace flag 8018, we knows that SQL Server collects ring buffer events information for exceptions also and records last 256 exceptions, raised on a node. Record will be added to ring buffer collection during the occurrence of exception. By default this record will contain error information along with stack trace.
Under high performance workload we can disable the collection stack trace information for the exception ring buffers by using trace flag 8019. Keep in mind that disabling the collection will eliminate the information that can be used for troubleshooting the server issue.
Another important thing to keep in mind is: SQL Server Ring Buffer Trace Flag 8019 can be turn on only at startup. If trace flag 8018 is already turned on then there will be no impact of using the trace flag 8019.
PS: Do not use trace flags in production environment without testing it on non production environments and without consulting because everything comes at a cost.
Prince Kumar Rastogi