• To get the total current size of your buffer pool run the following:

    SELECT

    SUM( multi_pages_kb +

    virtual_memory_committed_kb +

    shared_memory_committed_kb +

    awe_allocated_kb ) AS [Used by BPool, KB]

    FROM

    sys.dm_os_memory_clerks

    WHERE

    [type] = 'MEMORYCLERK_SQLBUFFERPOOL'

    Taken from INSIDE MICROSOFT SQL SERVER 2005, QUERY TUNING AND OPTIMIZATION by Kalen Delaney at el., which contains a good discussion of memory issues.

    Another good tool is DBCC MEMORYSTATUS. It will give you the current size of the buffer pool, plus other components, such as the procedure cache.

    Here is an excerpt from the output run on my server:

    Buffer Counts Buffers

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

    Committed 786432

    Target 786432

    Hashed 722004

    Stolen Potential 127447

    External Reservation 0

    Min Free 128

    Visible 195584

    Available Paging File 401426

    Procedure Cache Value

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

    TotalProcs 6878

    TotalPages 54239

    InUsePages 105

    In the above sample, the procedure cache size is 54239 pages times 8 KB/page = 434 MB (roughly)

    __________________________________________________________________________________
    SQL Server 2016 Columnstore Index Enhancements - System Views for Disk-Based Tables[/url]
    Persisting SQL Server Index-Usage Statistics with MERGE[/url]
    Turbocharge Your Database Maintenance With Service Broker: Part 2[/url]