Высокое использование памяти процессом sqlservr.exe [дубликат]

На этот вопрос уже есть ответ здесь:

Sub: Высокое использование памяти процессом sqlservr.exe.

Когда я смотрю в диспетчер задач -> процессы или с помощью счетчиков памяти perfmon (Sqlserver: диспетчер памяти: память целевого сервера и общий сервер память) Я получаю высокий уровень использования памяти процессом sqlservr.exe почти 8 ГБ (счетчик памяти целевого сервера) и 7,95 ГБ (общая память сервера).

и когда я перезапускаю службу MSSQLSERVER, он снова запускается Я получаю эту проблему довольно часто.

Пожалуйста, помогите мне определить, почему сервер sql использует так много памяти и как узнать, какой запрос, хранимая процедура и т. д. заставляет сервер sql использовать такой объем памяти.

*** Я не использую в своем коде триггеры или курсоры.

Спасибо

2
задан 14 June 2011 в 09:47
2 ответа

По моему опыту, SQL Server попытается предварительно выделить столько памяти, сколько это может, поскольку это очень уверено в памяти для производительности. Обычно нашим машинам SQL Server требуется приблизительно неделя, чтобы заниматься местом RAM на 32 ГБ для процесса SQL Server.

3
ответ дан 3 December 2019 в 10:17

При настройке SQL-сервера одним из первых шагов должно быть установление лимита SQL-памяти. В этом блоге есть отличное руководство . Для 8GB сервера рекомендуется установить MaxServerMem на 6400MB, что оставит вам 1.5GB для операционной системы и других операций. Операционная система всегда будет показывать процесс SQL сервера как использование всей выделенной ей памяти, и если вы не установите лимит, то SQL будет пытаться использовать всю память в системе, что может привести к страницам и низкой производительности, поэтому используйте лимиты, чтобы этого не случилось.

Другой хороший справочник по настройке SQL-сервера можно найти по адресу BrentOzar.com, в нем вы найдете некоторые основные параметры настройки, позволяющие получить максимальную отдачу от вашего SQL-сервера.

1
ответ дан 3 December 2019 в 10:17

Теги

Похожие вопросы