Как мне освободить оперативную память на нашем SQL Server (показано 77 МБ свободного места). Когда я пытаюсь выполнить запрос, я получаю сообщение об ошибке: не могу запустить поток из ОЗУ. Он использует все, кроме 77 МБ, из 5000+ МБ.
Вы установили опцию «максимальная память сервера». SQL мог пережевывать всю доступную память, вызывая описанный вами сценарий.
Вы можете проверить и установить его, как показано ниже. Это не потребует перезагрузки системы или перезапуска службы sql.
--Проверьте настройку максимальной памяти
sp_configure 'показать дополнительные параметры', 1
ИДТИ
ПЕРЕКОНФИГУРИРОВАТЬ
ИДТИ
sp_configure 'максимальная память сервера (МБ)'
ИДТИ
Если run_value составляет 2147483647 или больше, чем фактическое ОЗУ на сервере, установите его в соответствии с фактическим ОЗУ на сервере, оставив часть для ОС.
sp_configure 'max server memory (MB)', 4096 - 4 ГБ
ИДТИ
ПЕРЕКОНФИГУРИРОВАТЬ
ИДТИ
Кроме того, вы можете захотеть настроить AWE, если это 32-разрядный SQL Server Enterprise.
Если у вас много одновременных пользователей из пулов веб-серверов, вы можете снизить количество потоков пула и освободить достаточно ресурсов для себя, не нарушая работу системы.
Кроме того, вы всегда можете остановить службы, которые не являются строго необходимыми, на короткий период, пытаясь немного освободить.
Я предполагаю, что вы просто хотите освободить достаточно, чтобы подключиться к окну запроса, а затем выяснить, что еще происходит, что пожирает ресурсы. Если эта проблема возникает регулярно, я бы рекомендовал вам открыть окно запроса в начале дня и запускать sp_who2 каждые несколько минут, чтобы соединение оставалось активным, пока сервер не заполнится и не сможет создавать новые потоки.
Я также рекомендую вам запустить perfmon и начать мониторинг памяти SQL Server, подключений и статистики на уровне БД, а также начать искать некорректно работающие приложения, которые причиняют вам вред. Если это происходит регулярно, значит, у вас либо плохой код, либо обычное плохое программирование, либо реальная необходимость в обновлении.