На самом деле, есть хитрый маленький трюк, чтобы получить то, что вы ищете. Проблема / вопрос заключается в том, как заставить SQL Server «временно» выделять память, которая ему не нужна, а затем позволить ему возобновить ее по мере необходимости.
Для этого запустите следующий скрипт:
EXEC sys.sp_configure N'show advanced options', N'1'
RECONFIGURE WITH OVERRIDE
GO
EXEC sys.sp_configure N'max server memory (MB)', N'{low water mark}'
GO
RECONFIGURE WITH OVERRIDE
GO
EXEC sys.sp_configure N'max server memory (MB)', N'{High water mark}'
GO
RECONFIGURE WITH OVERRIDE
GO
EXEC sys.sp_configure N'show advanced options', N'0'
RECONFIGURE WITH OVERRIDE
GO
Введите свои собственные значения для {знак низкого уровня воды} и {знак высокого уровня воды} (в МБ).
Это приведет к уменьшению объема памяти до минимального, а затем снова откроет ее, если SQL Server будет нуждаться в этом / хочет.
Единственное, что осталось сделать, - это запланировать выполнение сценария на периодической основе.
Рекомендация:
Если SQL Server интенсивно не используется, попробуйте запускать его каждые 6 часов автоматически. Если он интенсивно используется, запускайте его каждые 24 часа (скажем, среди ночи или непосредственно перед началом дня). Ваше использование будет отличаться.