Comment limiter l'utilisation de la mémoire de MS SQL Server?

22

J'ai entendu dire que MS SQL Server prend autant de RAM que possible pour mettre en cache les résultats. Eh bien, cela ne laisse pas assez de marge de négociation pour la RAM de notre petit serveur.

Comment modifier les paramètres pour limiter la quantité de RAM qu'il peut utiliser?

MS SQL Server fonctionnant sur Windows Server 2008.

FlavourScape
la source
3
@DavidSchwartz: Je pense que vous constaterez que beaucoup de DBA MS SQL limiteront la quantité de RAM que le DBE peut utiliser. Cela a souvent un impact sur les performances de tout ce qui s'exécute sur le système.
wfaulk
1
@wfault: " Par défaut, SQL Server peut modifier ses besoins en mémoire de manière dynamique en fonction des ressources système disponibles. " Beaucoup de gens aiment jouer avec des choses juste pour le plaisir de jouer avec eux, mais ce qu'ils font en fait, c'est inhiber la capacité du serveur pour s'adapter à l'évolution de la charge. Si ce n'est pas cassé, vous ne pouvez pas le réparer. Cela est le plus souvent fait par des personnes qui aiment voir beaucoup de mémoire libre pour se sentir bien, mais en fait, toute mémoire libre est également inutilisée - c'est-à-dire gaspillée.
David Schwartz
4
@DavidSchwartz: Je comprends d'où vous venez, et dans toute autre situation, je serais d'accord avec vous, mais MS SQL ne semble pas vraiment optimiser cela très bien, IME.
wfaulk
1
En fait, il était cassé, car cela arrêterait le serveur ...
FlavorScape
1
Je suis d'accord avec ce mec: sqlservercentral.com/blogs/glennberry/2009/10/29/…
Daniel Dolz

Réponses:

24

Dans Comment configurer les options de mémoire à l'aide de SQL Server Management Studio :

Utilisez les deux options de mémoire du serveur, la mémoire serveur minimale et la mémoire serveur maximale , pour reconfigurer la quantité de mémoire (en mégaoctets) gérée par le Gestionnaire de mémoire SQL Server pour une instance de SQL Server.

  1. Dans l'Explorateur d'objets, cliquez avec le bouton droit sur un serveur et sélectionnez Propriétés .
  2. Cliquez sur le nœud Mémoire .
  3. Sous Options de mémoire du serveur , entrez la quantité souhaitée pour la mémoire serveur minimale et la mémoire serveur maximale .

Vous pouvez également le faire dans T-SQL à l'aide des commandes suivantes (exemple):

exec sp_configure 'max server memory', 1024
reconfigure
wfaulk
la source
2

Pour restreindre la consommation de mémoire du service MS SQL:

Définir la «mémoire maximale du serveur» dans SQL Server Management Studio

  1. Nous allons maintenant définir l'option "max server memory" pour limiter l'utilisation de la mémoire par SQL Server. Nous pouvons le faire en cliquant avec le bouton droit sur notre instance et en choisissant "Propriétés".

  2. Dans l'Explorateur d'objets, cliquez avec le bouton droit sur un serveur et sélectionnez Propriétés. entrez la description de l'image ici

  3. Cliquez sur le nœud de mémoire comme indiqué ci-dessous:

entrez la description de l'image ici 4. Sous Options de mémoire du serveur, entrez la quantité souhaitée pour la mémoire maximale du serveur. Comme vous pouvez le voir ci-dessous, nous configurons la mémoire maximale du serveur à 4096 Mo (soit 4 Go).

entrez la description de l'image ici

Pour restreindre la consommation de mémoire du service MS SQL:

Nous pouvons également définir la «mémoire maximale du serveur» en utilisant un script T-SQL:

L'exemple suivant définit l'option de mémoire maximale du serveur sur 4 Go:

sp_configure 'show advanced options', 1;
GO
RECONFIGURE;
GO
sp_configure 'max server memory', 4096;
GO
RECONFIGURE;
GO

Réf: https://technet.microsoft.com/en-us/library/ms191144(v=sql.105).aspx

Kundan Dasange
la source