0

Below what my server's performance counters show:

Memory Manager performance counters

Questions:

1) What "Stolen Server Memory" consists of ? I can assume "Plan Cache", "Lock Memory", "SQL Cache", "Connection", "Optimizer" are included into "Stolen Server Memory", but what else is included ?

2) How can I query rest of things that are included into "Stolen Server Memory" ?

1

What "Stolen Server Memory" consists of ?

I will quote from my answer given on This Thread.

Stolen memory describes buffers that are in use for sorting or for hashing operations (query workspace memory), or for those buffers that are being used as a generic memory store for allocations to store internal data structures such as locks, transaction context, and connection information. The lazywriter process is not permitted to flush Stolen buffers out of the buffer pool.

Plan cache is not part of stolen memory.

How can I query rest of things that are included into "Stolen Server Memory" ?

AFAIK their is no query to tell what "actually" stolen memory consists and how much. You can run DBCC MEMORYSTATUS() command to see the value of stolen memory.

  • look at picture, 128553 (db cache) + 29117 (stolen) + 26644 (free) = 184314 (total server memory). Plan cache is not part of stolen memory ? then according to you Plan cache must be part of Free memory or Database cache memory... seems wrong to me – Aleksey Vitsko Nov 12 '19 at 17:41
  • Stolen memory is taken from buffer pool for operation quoted in answer, the memory can come from any part of BP, memory from plan cache may be stolen but is not part of it, simply I believe because it does not stores any plan. – Shanky Nov 13 '19 at 6:23

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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