web-dev-qa-db-fra.com

Pourquoi SQL Server Standard 2017 utilise-t-il plus de mémoire que la limite décrite dans la documentation?

La documentation dit:

Par exemple: une édition standard de SQL Server a une mémoire de pool tampon limitée à 128 Go, de sorte que les pages de données et d'index sont mises en cache dans la piscine tampon étant limitée de 128 Go. Démarrage avec SQL Server 2016 SP1, vous pouvez avoir une mémoire de 32 Go de mémoire supplémentaire pour le cache de segment de colonne par instance et un quota de mémoire supplémentaire de 32 Go pour en mémoire OLTP par base de données. En outre, il peut. Soyez la mémoire consommée par d'autres consommateurs de la mémoire dans SQL Server, qui sera limitée par "MAX Server Memory" ou une mémoire totale sur le serveur si la mémoire Max Server est non appapée.

Nous utilisons ColumnStore, donc je m'attends à ce que SQL Server soit limité en utilisant 128 + 32 Go de mémoire. Les tables optimisées de la mémoire ne sont pas utilisées.

Mais en réalité, plus de 215 Go est utilisé pour la piscine tampon: -enter image description here

Commis à la mémoire enter image description here

Le processus global SQL prend environ 300 Go. enter image description here

sélectionnez * à partir de sys.dm_os_process_memory

enter image description here

Max mémoire définie sur 360 Go. Serveur a 380 Go.

Qu'est-ce que je rate?

Version:

Microsoft SQL Server 2017 (RTM-CU14) (KB4484710) - 14.0.3076.1 (x64)
[.____] 12 mars 2019 19:29:19 Copyright (c) 2017 Microsoft Corporation Standard Edition (64 bits) sur Windows Server 2016 Standard 10.0 (Construction 14393 :) (Hyperviseur)

Mise à jour (2019-04-26) Voici une chose intéressante - MemoryCerk_sqlbufferpool est présenté par deux enregistrements. La rangée n ° 3 est exactement ce que je m'attendais à voir pour l'édition standard. Mais quelle est la première ligne? Le serveur a 2 processeurs avec 48 cœurs Total. buffer pool

6
Alex Bochkov

Je crois que vous avez manqué la documentation. S'il vous plaît voir les points en surbrillance dans l'image ci-dessous

enter image description here

La mémoire utilisée par les tables optimisées de la mémoire est de 32 Go par base de données

Disons-nous donc que vous disposez d'une édition standard SQL Server ayant des index de colonne et des tables optimisées de mémoire dans 3 .

La mémoire maximale utilisée peut être

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

Faites-moi savoir pour le nombre de bases de données que vous utilisez des tables optimisées de mémoire?. La limite de 128 Go n'est que pour la piscine tampon

2
Shanky