• Hm, some more weirdness.

    SELECT

    database_id, COUNT_BIG(*) / 128 as bufferMB

    FROM sys.dm_os_buffer_descriptors

    GROUP BY database_id

    order by 2 desc

    On my 128 gig server with 100 gig allocated to the SQL instance, the above query gives me the following results:

    database_id bufferMB

    ----------- --------------------

    7 20145

    8 1349

    6 92

    4 68

    2 63

    32767 19

    5 5

    1 3

    10 0

    3 0

    12 0

    15 0

    9 0

    11 0

    A few moments ago, database 7 had a value of just 10,000. Database 7 is the 500 gig ERP database. This is on an instance with a min server memory of 50,000 and a max of100,000.

    So... why would SQL not consume all the memory allocated for its buffer? It's clear from the PLE values (and the timeouts reported by users) that it needs to be using the memory that we spent all that money on. But it... isnt...

    So yeah, it seems as though a dropcleanbuffers is happening randomly.