Sub: Высокое использование памяти процессом sqlservr.exe.
Когда я смотрю в диспетчер задач → процессы или с помощью счетчиков памяти perfmon (Sqlserver: диспетчер памяти: память целевого сервера и общая память сервера), я получаю высокую степень использования памяти процессом sqlservr.exe почти 8 ГБ (счетчик памяти целевого сервера) и 7,95 ГБ (общий объем памяти сервера).
и когда я перезапускаю службу MSSQLSERVER, она снова увеличивается до того же размера. Я получаю эту проблему довольно часто.
Пожалуйста, помогите мне определить, почему сервер sql использует так много памяти и как узнать, какой запрос, хранимая процедура и т. Д. Заставляет сервер sql использовать столько памяти.
*** Я не использую в своем коде триггеры или курсоры.
Спасибо
По моему опыту, SQL Server будет пытаться предварительно выделить как можно больше памяти, так как производительность сильно зависит от памяти. Обычно нашим машинам с SQL Server требуется около недели, чтобы получить до 32 ГБ оперативной памяти для процесса SQL Server.
Когда вы настраиваете свой SQL-сервер, одним из первых шагов, которые вы должны сделать, является установка предела памяти SQL. На сайте есть отличный гид этот блог. Для сервера 8 ГБ рекомендуется установить MaxServerMem на 6400 МБ, это даст вам 1,5 ГБ для ОС и других операций. ОС всегда будет показывать, что процесс SQL-сервера использует всю выделенную ему память, и если вы не установите ограничение, SQL попытается использовать всю память в системе, что может привести к переходу на страницу и снижению производительности, поэтому используйте пределы, чтобы остановить это.
Еще один хороший справочник по настройке SQL-сервера можно найти на BrentOzar.com, поможет вам выбрать некоторые из основных параметров настройки, чтобы максимально использовать возможности вашего SQL-сервера.