Назад | Перейти на главную страницу

Использование памяти SQL-сервера

У меня установлен SQL Server 2008 на производственной площадке, и максимальный объем памяти, выделенной для него, составляет 28 ГБ из общего объема оперативной памяти 32 ГБ. Но иногда я вижу, что сервером sql используется более 29 ГБ памяти, чего не должно быть. Есть ли какие-то корректирующие действия, которые я должен предпринять или очистить?

Параметр максимальной памяти сервера управляет только размером пула буферов. SQL Server может и будет выделять больше памяти, чем параметр 28 ГБ, для собственного использования потребителями, не связанными с пулом буферов. Компоненты (DLL), загруженные внутри процесса, также потребляют память. Насколько больше зависит от модели использования, это может быть на несколько мегабайт больше или может быть больше гигабайт (например, добавьте несколько вызовов XP или sp_OA, и память выйдет из строя).

Ваши корректирующие действия должны заключаться в исследовании дополнительного потребления памяти. sys.dm_os_memory_clerks твой друг здесь, см. также Как использовать команду DBCC MEMORYSTATUS для отслеживания использования памяти на SQL Server. Определенные потребители памяти не могут быть исследованы с помощью DMV и счетчиков SQL Server (например, память, выделенная загруженными библиотеками DLL, такими как компоненты COM).