На моем локальном компьютере установлена песочница SQL Server. Я установил, что память экземпляра SQL Server может использовать до 1000 МБ. При выполнении интенсивной операции использование памяти возрастает до 1000 МБ. После завершения операции SQL Server все еще удерживает память. Как освободить это резервирование памяти?
sql-server
memory
jrara
источник
источник
min server memory
иmax server memory
настройки ? Как только SQL Server зарезервирует указанный вами минимум, он никогда не выпустит его, если вы не измените настройку или не откажетесь от экземпляра. Как отметил Джеймс, если он резервирует больше указанного вами минимума, теоретически он должен освобождать его, когда он ему не нужен, и на машине загружается память.Ответы:
Остановите / запустите службу, больше ничего не освободит память обратно в ОС.
Очевидно, что это не то, что вы когда-либо хотели бы делать с работающим сервером, но вполне разумно для локальной песочницы. С 3 различными экземплярами на моем ноутбуке, это единственный жизнеспособный способ.
Редактировать после комментария @ Ника.
Какое у вас определение "не нужно"? Как только буферный пул будет заполнен, он не будет отбрасывать страницы до тех пор, пока они не будут обесценены другими загружаемыми страницами. Если вы хотите немедленно вернуть память, как в случае с @jrara, вам нужно остановить /Начните.
источник
QueryMemoryResourceNotification
чтобы определить, когда буферный пул может выделять память и освобождать память». Так что, если вы просто беспокоитесь о том, что другие приложения могут нуждаться в памяти больше, SQL Server теоретически освободит память, которая ему не нужна, когда Windows скажет об этом. Единственная причина, по которой вам нужно форсировать освобождение путем перезапуска экземпляра, заключается в том, что этот механизм работает не так, как задумано, или ваши минимальные / максимальные настройки памяти неверны.освободит бассейн.
https://msdn.microsoft.com/en-us/library/ms178529.aspx
замечания
Выполнение DBCC FREESYSTEMCACHE очищает кэш плана для экземпляра SQL Server. Очистка кэша планов приводит к перекомпиляции всех последующих планов выполнения и может вызвать внезапное временное снижение производительности запросов. Для каждого очищенного хранилища кэша в кэше плана журнал ошибок SQL Server будет содержать следующее информационное сообщение: «SQL Server обнаружил% d вхождений сброса кэшированного хранилища для кэшированного хранилища«% s »(часть кэша плана) из-за Операции «DBCC FREEPROCCACHE» или «DBCC FREESYSTEMCACHE». " Это сообщение регистрируется каждые пять минут, пока кэш очищается в течение этого интервала времени.
источник
Он автоматически откажется от памяти, которую он не использует, поскольку другие приложения пытаются зафиксировать его.
источник