J'ai une installation de sandbox SQL Server sur mon ordinateur local. J'ai défini la mémoire que l'instance SQL Server peut utiliser à 1 000 Mo. Lors de l'exécution d'une opération intensive, l'utilisation de la mémoire augmente jusqu'à 1 000 Mo. Une fois l'opération terminée, SQL Server conserve toujours la mémoire. Comment libérer cette réservation mémoire?
sql-server
memory
jrara
la source
la source
min server memory
et ? Une fois que SQL Server réserve le minimum que vous spécifiez, il ne le libérera jamais sauf si vous modifiez le paramètre ou renvoyez l'instance. Comme James l'a noté, s'il réserve plus que le minimum que vous spécifiez, il devrait en théorie le libérer lorsqu'il n'en a pas besoin et qu'il y a une pression mémoire sur la machine.max server memory
Réponses:
Arrêtez / démarrez le service, rien d'autre ne libérera la mémoire sur le système d'exploitation.
Évidemment, ce n'est pas quelque chose que vous voudriez faire avec un serveur opérationnel, mais parfaitement raisonnable pour un sandbox local. Avec 3 instances différentes sur mon ordinateur portable, c'est le seul moyen viable.
Modifier le commentaire de @ Nick suivant.
Quelle est votre définition de "n'en a pas besoin"? Une fois que le pool de tampons a été rempli, il ne supprimera pas les pages tant qu'elles ne seront pas défavorisées par d'autres pages introduites. Si vous souhaitez récupérer la mémoire immédiatement, comme c'est le cas pour @jrara, vous devez arrêter /début.
la source
QueryMemoryResourceNotification
pour déterminer quand le pool de mémoire tampon peut allouer de la mémoire et libérer de la mémoire." Donc, si vous êtes juste inquiet de mourir de faim d'autres applications qui pourraient avoir besoin de plus de mémoire, SQL Server libérera en théorie la mémoire dont il n'a pas besoin lorsque Windows le lui dit. La seule raison pour laquelle vous devez forcer une version en redémarrant l'instance est si ce mécanisme ne fonctionne pas comme prévu ou si vos paramètres de mémoire min / max sont incorrects.va libérer la piscine.
https://msdn.microsoft.com/en-us/library/ms178529.aspx
Remarques
L'exécution de DBCC FREESYSTEMCACHE efface le cache du plan pour l'instance de SQL Server. L'effacement du cache du plan entraîne une recompilation de tous les plans d'exécution ultérieurs et peut entraîner une baisse soudaine et temporaire des performances des requêtes. Pour chaque cache caché dans le cache du plan, le journal des erreurs SQL Server contiendra le message d'information suivant: «SQL Server a rencontré% d occurrence (s) de vidage du cache pour le cache«% s »(partie du cache du plan) en raison de Opérations "DBCC FREEPROCCACHE" ou "DBCC FREESYSTEMCACHE". " Ce message est enregistré toutes les cinq minutes tant que le cache est vidé dans cet intervalle de temps.
la source
Il abandonnera automatiquement la mémoire qu'il n'utilise pas lorsque d'autres applications tentent de le valider.
la source