HiveBrain v1.2.0
Get Started
← Back to all entries
patternsqlMinor

Why SQL Server Standard 2017 is using more memory than limit described in documentation?

Submitted by: @import:stackexchange-dba··
0
Viewed 0 times
whysqllimitthanmoredescribedstandarddocumentationusingmemory

Problem

Documentation says:


For example: A Standard Edition of SQL Server has buffer pool memory
limited to 128GB, so the data and index pages cached in buffer pool is
limited by 128GB. Starting with SQL Server 2016 SP1, you can have an
additional 32GB of memory for Columnstore segment cache per instance
and an additional 32GB of memory quota for In-Memory OLTP per
database. In addition, there can be memory consumed by other memory
consumers in SQL Server which will be limited by "max server memory"
or total memory on the server if max server memory is uncapped.

We are using columnstore so I expect that SQL Server will be limited by using 128+32 Gb of memory. Memory optimized tables are not used.

But in reality more than 215 Gb is being used for buffer pool:

Memory Clerks

Overall sql process takes ~300Gb.


select * from sys.dm_os_process_memory

Max memory set to 360Gb. Server has 380Gb.

What am I missing?

Version:


Microsoft SQL Server 2017 (RTM-CU14) (KB4484710) - 14.0.3076.1 (X64)

Mar 12 2019 19:29:19 Copyright (C) 2017 Microsoft Corporation
Standard Edition (64-bit) on Windows Server 2016 Standard 10.0
(Build 14393: ) (Hypervisor)

UPDATE (2019-04-26)
Here is interesting thing - MEMORYCLERK_SQLBUFFERPOOL is presented by two records. Row #3 is exactly what I'd expect to see for Standard Edition. But what is the first row?
Server has 2 processors with 48 cores total.

Solution

I believe you missed the documentation. Please see the highlighted points in image below

The memory used by memory optimized tables is 32 GB PER DATABASE

So let us say you are having SQL Server standard edition having columnstore indexes and having memory optimized tables in 3 databases.

The maximum memory utilized can be

128+32+(3*32)= 256 GB.

Let me know for how many databases you are using memory optimized tables ?. The 128 GB limit is only for buffer pool

Context

StackExchange Database Administrators Q#236617, answer score: 2

Revisions (0)

No revisions yet.