Is there a way to detect from within SQL (i.e. not using perf mon counters) that my system is suffering from memory pressure?
For example for CPU I have used sys.dm_os_ring_buffers DMV (particularly buffer type: RING_BUFFER_SCHEDULER_MONITOR) to detect CPU over-utilization if the ring_buffer sampling rate showed 3 consecutive entries above 80% utilization. Is there some way to do the same with memory?
I have tried:
> Using sys.dm_os_ring_buffers DMV with RING_BUFFER_RESOURCE_MONITOR
: Doesn't seem to be as sensitive (or accurate?) as I would like it to be, I know the box is suffering from memory issues but this DMV is not reporting anything.
> Using the dm_os_memory_clerks DMV (as highlighted in this article)
: I think this particular DMV has changed since SQL 2005, and am not sure how to map the new column to the old columns mentioned in the article.
Any suggestions/guidance on what I should use?, or should I abandon this concept and start looking at perf mon counters instead?
... Then again, I could be totally wrong! Check the answer.Check out posting guidelines here for faster more precise answers
I believe in Codd
... and Thinknook
is my Chamber of Understanding